pg数据库中按天统计并且细分类别

最近调试程序,为了直观地看到效果,我想统计一下数据库相关数据。我的想法是,先按天统计数量,然后这数量里,又按照类别细分,今天这种是多少,那种是多少。

我想来想去,感觉这SQL语句不好写。不过,以前有事查百度,如今不懂问AI。万能的AI听了我的要求描述之后,吭哧吭哧地给出如下代码:

SELECT 
    DATE(time) AS date,
    COUNT(*) AS record_count,
    SUM(CASE WHEN type IN (10501,10502,10503) THEN 1 ELSE 0 END) AS 妖精,
    SUM(CASE WHEN type = 10301 THEN 1 ELSE 0 END) AS 鬼怪,
    SUM(CASE WHEN type = 10201 THEN 1 ELSE 0 END) AS 魔头,
    SUM(CASE WHEN type = 10101 THEN 1 ELSE 0 END) AS 猛兽,		
    SUM(CASE WHEN type IN (10401,10402) THEN 1 ELSE 0 END) AS 猪队友
FROM 
    sde.warn_events2
WHERE 
    time >= '2024-12-05 15:00:00' AND time < '2025-01-01 00:00:00'
GROUP BY 
    DATE(time)
ORDER BY 
    date;

运行结果,完美:
在这里插入图片描述
像这种分组结合case语句的方式,我以前也看过,好像还写过。但现在一点印象都没有了,这说明我没有真正理解。

posted on 2024-12-18 10:58  左直拳  阅读(0)  评论(0)    收藏  举报  来源

导航