レポート

SUMの結果を行ではなく列にする

集合の数

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;