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

如何编写DB2查询,按ID统计ABC和ABCD值的出现次数并转列输出?

DB2分组统计特定值出现次数

问题说明

现有DB2表数据如下:

IDvalue
1ABC
1ABC
1ABCD
2ABC

value列仅包含ABC和ABCD两个取值,需按ID分组,统计每个ID对应的两类值出现次数,输出格式要求如下:

IDcount (ABC)count (ABCD)
121
210

解决方案

可以使用CASE WHEN结合SUM函数实现需求,DB2查询语句如下:

SELECT
    ID,
    SUM(CASE WHEN value = 'ABC' THEN 1 ELSE 0 END) AS "count (ABC)",
    SUM(CASE WHEN value = 'ABCD' THEN 1 ELSE 0 END) AS "count (ABCD)"
FROM
    your_table_name -- 替换为实际表名
GROUP BY
    ID
ORDER BY
    ID;

逻辑说明

  • CASE WHEN逐行判断value取值,匹配目标值时返回1,否则返回0
  • SUM函数对每个ID分组内的判断结果求和,得到对应值的出现次数
  • 对于无对应取值的分组(比如ID=2的ABCD),SUM会将所有0相加,最终返回0,符合输出要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:35:28