You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL语句按日期分组统计指定颜色的数量?

按日期分组统计各颜色数量的SQL实现

你可以使用条件聚合的方式实现行转列,按日期统计每种颜色的数量,已知所有颜色种类的情况下,代码如下(请将color_records替换为你的实际表名):

SELECT
    date,
    SUM(CASE WHEN color = 'RED' THEN 1 ELSE 0 END) AS RED,
    SUM(CASE WHEN color = 'BLUE' THEN 1 ELSE 0 END) AS BLUE,
    SUM(CASE WHEN color = 'GREEN' THEN 1 ELSE 0 END) AS GREEN
FROM color_records
GROUP BY date
ORDER BY date;

代码说明:

  1. GROUP BY date:按日期对数据分组,确保每个日期只返回一行结果。
  2. SUM(CASE ...):对每个颜色进行条件统计:
    • 当行中color匹配目标颜色时返回1,否则返回0;
    • 通过SUM累加这些值,得到该颜色在当天的总数量;
    • 如果某天没有某颜色的数据,SUM会返回0,正好符合你需要的结果。

另一种等价写法(使用COUNT):

你也可以用COUNT替代SUM,因为COUNT会忽略NULL值,写法如下:

SELECT
    date,
    COUNT(CASE WHEN color = 'RED' THEN 1 END) AS RED,
    COUNT(CASE WHEN color = 'BLUE' THEN 1 END) AS BLUE,
    COUNT(CASE WHEN color = 'GREEN' THEN 1 END) AS GREEN
FROM color_records
GROUP BY date
ORDER BY date;

两种写法都能得到你需要的结果,选择自己习惯的即可。

内容的提问来源于stack exchange,提问作者hank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:01:03