乐趣区

关于python:peewee-group-by-count-没有-count-字段的问题解决

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

我心愿依照分组统计个数,然而遇到了一个问题,就是 count 的后果出不来,加上 dicts 也出不来

只有 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)

有了别名就行了

残缺代码

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()))
退出移动版