この表から
D_value ------- A B B C C C
D_Value
このテーブルにカウントを表示するには
A | B | C --------- 1 | 2 | 3
単一の行を取得するには、これを使用します。
SELECT
COUNT(CASE WHEN D_Value = 'A' THEN 1 END) AS A,
COUNT(CASE WHEN D_Value = 'B' THEN 1 END) AS B,
COUNT(CASE WHEN D_Value = 'C' THEN 1 END) AS C
FROM
MyTable
これは、カウントする値の有限数と固定数に対して機能します
異なる値の数がわからない場合は、単純な集計を実行して、クライアントコードに単一の行を作成する必要があります。
SELECT D_value, COUNT(*) FROM MyTable GROUP BY D_value;
ただし、これでは、存在しない値のカウントはゼロになりません。したがって、ルックアップテーブルとLEFTJOINが必要になります。まだ行きません...
select D_value,count(*) from table group by D_value;