1

我有下表:

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

我希望能够考虑 A & B 就好像它们是出于 group by 目的的一个,所以

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

将返回

Col1  count(*)
AB    5
C     1
D     1
4

1 回答 1

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而不必在那里复制整个表达式。

于 2012-06-22T17:12:06.007 回答