Mysql 使用Execute的SQLAlchemy

Mysql 使用Execute的SQLAlchemy,mysql,orm,sqlalchemy,pylons,Mysql,Orm,Sqlalchemy,Pylons,我很难在手动查询中同时使用GROUPBY、having和sum。下面是我的查询,有人能帮我确定为什么它返回这么多行,好像它没有应用组by或have q = meta.Session.execute('SELECT ID FROM table GROUP BY ID HAVING SUM(viewCount)= 0') results = q.fetchall() len(results) 上面的输出是371 如果我运行查询 SELECT ID FROM table GROUP BY ID HA

我很难在手动查询中同时使用GROUPBY、having和sum。下面是我的查询,有人能帮我确定为什么它返回这么多行,好像它没有应用组by或have

q = meta.Session.execute('SELECT ID FROM table GROUP BY ID HAVING SUM(viewCount)= 0')
results = q.fetchall()
len(results)
上面的输出是371

如果我运行查询

SELECT ID FROM table GROUP BY ID HAVING SUM(viewCount)=0;
找到17行常规SQL的输出


我试着利用SQLAlchemy提供的组_,但我无法让它在拥有和总和的情况下正常工作。我知道我可能需要包括func和。非常感谢您的帮助。

AFAIK,在使用原始sql时,您不能使用SQLAlchemy提供的group_by或func.sum函数。另外,您应该去掉sql末尾的聚合函数SUM,只需将viewCount设置为0