在SQL中,GROUP BY子句根据分组表达式 将分组的行压缩为单个行
。我的猜测是您正在使用SQLite或MySQL的较早版本,因为允许您选择非聚合,而它们在功能上不依赖于分组表达式。在这种情况下,结果包含每个组中未指定行的值,因此很少(如果有的话)很有用。
一个解决方案是在SQL中使用ORDER BY而不是GROUP
BY,然后根据订单表达式在Python中进行分组:
from itertools import groupbyfrom operator import attrgetterlistings = session.query(Media). filter(Media.site == "CNN"). order_by(Media.show_id). all()# Materialize the subiterators to listslistings = [list(g) for k, g in groupby(listings, attrgetter('show_id'))]


