Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sqlalchemy COUNT and IF

anyone know how can i do counting if in SQL alchemy like

COUN(IF(table_row = 1 AND table_row2 =2),1,0)

i make something like this,

func.COUNT(func.IF((TransactionMessage.tm_read==0 and TransactionMessage.tm_type==1),1,0)).label('t_message_count'),

But sqlalchemy make 2 seperate if with TransactionMesssage.tm_read, and TransactinMessage.tm_type

Could somone help me to resolve problem?

like image 810
gummmibear Avatar asked Oct 19 '10 20:10

gummmibear


1 Answers

I do not have environment to test, but most probably you need to use sqlalchemy.sql.expression.and_ expression:

from sqlalchemy.sql.expression import and_
...
func.COUNT(func.IF(and_(TransactionMessage.tm_read == 0, 
                        TransactionMessage.tm_type == 1), 1, 0)
           ).label('t_message_count'),
like image 127
van Avatar answered Sep 28 '22 05:09

van