q = KeywordTask.select(
    KeywordTask.track_source_id,
    fn.COUNT(KeywordTask.track_source_id)
).group_by(KeywordTask.track_source_id)

我希望按照分组统计个数,但是遇到了一个问题,就是 count 的结果出不来,加上 dicts 也出不来

图片.png

只有 track_source_id ,没有 count

怎么办?

解决方案,必须给 count 一个别名才行

q = KeywordTask.select(
    KeywordTask.track_source_id,
    fn.COUNT(KeywordTask.track_source_id).alias('count')
).group_by(KeywordTask.track_source_id)

有了别名就行了

图片.png

完整代码

from core.mysql.models import KeywordTask
from peewee import fn
from loguru import logger

q = KeywordTask.select(
    KeywordTask.track_source_id,
    fn.COUNT(KeywordTask.track_source_id).alias('count')
).group_by(KeywordTask.track_source_id)


logger.debug(str(q))

logger.debug(list(q.dicts()))

universe_king
3.4k 声望680 粉丝