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

SQL如何将同列不同枚举值分组统计后展示为独立列

多状态反馈量分列统计SQL实现方案

你需要使用条件聚合语法实现需求,也就是将聚合函数和条件判断结合,分别统计对应状态的数量,修改后的SQL如下:

SELECT 
  company 公司名称,
  COUNT(CASE WHEN `Company Response to Consumer` = 'Closed' THEN 1 END) Closed状态反馈数量,
  COUNT(CASE WHEN `Company Response to Consumer` = 'Closed with explanation' THEN 1 END) Closed_with_explanation状态反馈数量,
  COUNT(CASE WHEN `Company Response to Consumer` = 'Closed with non-monetary relief' THEN 1 END) Closed_with_non_monetary_relief状态反馈数量
FROM consumercomplaints
WHERE `Company Response to Consumer` IN ('Closed', 'Closed with explanation', 'Closed with non-monetary relief')
GROUP BY company

实现逻辑说明

  • 每段COUNT(CASE ... END)负责统计对应状态的数量:当反馈结果匹配对应状态时返回非空值,不匹配则返回NULL,COUNT函数只会统计非空值,因此可以精准得到对应状态的反馈量
  • 原SQL的WHERE过滤条件可以保留,排除非目标枚举值的无效数据,提升查询效率
  • 如果你使用的数据库支持IF函数,也可以将CASE WHEN替换为更简洁的IF写法,比如COUNT(IF(Company Response to Consumer = 'Closed', 1, NULL)),执行效果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:12:02