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语句的方式,我以前也看过,好像还写过。但现在一点印象都没有了,这说明我没有真正理解。
浙公网安备 33010602011771号