1

私は次の表を持っています:

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

AとBをgroupbyの目的で1つであるかのように考えられるようにしたいので、

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 に答える