首页 > 解决方案 > 如何通过聚合 SQL 中的不同键进行分组

问题描述

我有如下表。

我想groupby通过生成新的键,比如DD手段AB

在这种情况下,countinD2因为AB各有 1 条记录。

有没有办法通过使用它来生成新的密钥和 groupby?

product sex  age 
A        M   10
B        M   20
C        F   30

我想要的结果如下所示。

product    count
C            1
D (A orB)    2

如果你有同样的经历,请告诉我。

谢谢

标签: sql

解决方案


product您必须按与您的条件匹配的派生列而不是该列:

select 
  case when product in ('A', 'B') then 'D' else product end product,
  count(*)
from tablename
group by case when product in ('A', 'B') then 'D' else product end

请参阅演示
结果:

| newproduct | count(*) |
| ---------- | -------- |
| C          | 1        |
| D          | 2        |

推荐阅读