sqlalchemy COUNT и IF - PullRequest
       3

sqlalchemy COUNT и IF

4 голосов
/ 20 октября 2010

кто-нибудь знает, как я могу сделать подсчет, если в SQL-алхимии, как

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

я делаю что-то вроде этого,

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

Но sqlalchemy делает 2 отдельно, если с TransactionMesssage.tm_readи TransactinMessage.tm_type

Может ли кто-нибудь помочь мне решить проблему?

1 Ответ

9 голосов
/ 20 октября 2010

У меня нет среды для тестирования, но, скорее всего, вам нужно использовать sqlalchemy.sql.expression.and_ выражение:

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'),
...