我可以将Multiple Row值视为group by子句中的一个吗?

时间:2012-06-22 17:10:12

标签: sql

我有下表:

Col1  Col2
A     ...
A     ...
A
B
B
C
D

我希望能够考虑A& B好像它们是一个用于分组的目的,所以

select Col1, count(*) from table group by Col1

将返回

Col1  count(*)
AB    5
C     1
D     1

1 个答案:

答案 0 :(得分:3)

通过CASE语句对条件列进行分组:

SELECT
  CASE WHEN Col1 IN ('A','B') THEN 'AB' ELSE Col1 END AS Col1Group,
  COUNT(*)
FROM table
GROUP BY
    CASE WHEN Col1 IN ('A','B') THEN 'AB' ELSE Col1 END

您没有指定您的RDBMS,但有些(如MySQL)允许您在Col1Group内使用别名GROUP BY,而不必在那里复制整个表达式。