SUM(CASE WHEN カラムA = 10 THEN 1 ELSE 0 END) AS カラムA_10
SUM(CASE WHEN カラムA = 20 THEN 1 ELSE 0 END) AS カラムA_20
SUM(CASE WHEN カラムA = 30 THEN 1 ELSE 0 END) AS カラムA_30
行にする
SELECT
MAX(CASE WHEN ヘッダーにするカラム = 'Engineer' THEN 名前カラム ELSE NULL END) AS Engineer,
MAX(CASE WHEN ヘッダーにするカラム = 'SeniorEngineer' THEN 名前カラム ELSE NULL END) AS SeniorEngineer
FROM (
SELECT
ヘッダーにするカラム,
名前カラム,
ROW_NUMBER() OVER(PARTITION BY ヘッダーにするカラム ORDER BY 名前カラム) ヘッダーにするカラム_row_num
) tmp
GROUP BY
ヘッダーにするカラム_row_num;
※ヘッダーにするカラム_row_numはヘッダーにするカラムの何行目のレコードか
GROUP BYの全グループの合計
SELECT
COALESCE(グループカラム, 'TOTAL') グループカラム,
SUM(値カラム) SUM_値カラム
FROM
テーブル
GROUP BY
グループカラム WITH ROLLUP;
0/1の表を作成
SELECT
名前カラム,
CASE WHEN 名前カラム = 'Engineer' THEN 1 ELSE 0 END AS Engineer,
CASE WHEN 名前カラム = 'UXDesigner' THEN 1 ELSE 0 END AS UXDesigner,
CASE WHEN 名前カラム = 'Manager' THEN 1 ELSE 0 END AS Manager
FROM
テーブル名
ORDER BY
Engineer DESC, UXDesigner DESC, Manager DESC;