我有下表:
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
答案 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
,而不必在那里复制整个表达式。