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

如何不直接使用pivot语句实现SQL数据透视统计

不使用PIVOT实现SQL行转列的解决方法

注:你给出的预期输出中103应为笔误,样例数据中仅存在ID 100、101、102,最终输出对应三个列的统计值为2、1、1,若确实需要统计ID=103的数量,在下方代码中补充对应分支即可。

正确SQL语句

SELECT
  SUM(CASE WHEN ID = '100' THEN 1 ELSE 0 END) AS `100`,
  SUM(CASE WHEN ID = '101' THEN 1 ELSE 0 END) AS `101`,
  SUM(CASE WHEN ID = '102' THEN 1 ELSE 0 END) AS `102`
FROM t1;

原代码问题说明

  • 缺失ID=100的统计分支,无法得到对应列的统计结果
  • 错误将CASE判断字段放到GROUP BY中,会导致统计结果按不同CASE值拆分多行,不符合单行输出的需求
  • 最后一个CASE判断和GROUP BY条件重复编写了ID=102的逻辑,漏了对应103的判断规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:54:03