前提・実現したいこと
select SUM(CASE WHEN hoge = 1 THEN fuga ELSE 0 END) AS aaaa, SUM(CASE WHEN hoge = 2 THEN fuga ELSE 0 END) AS bbbb, SUM(CASE WHEN hoge = 3 THEN fuga ELSE 0 END) AS cccc, SUM(CASE WHEN hoge = 4 THEN fuga ELSE 0 END) AS dddd, from tab_hoge この辺なんかgroupby よくあるやつ
このような感じで縦のデータを横にすることはできるのですが
上記の例でいう
when 1,2,3,4..
を直表記せず、このデータを横割りするにはどうすればいいでしょうか?
状況としては以下です
・現在この1,2,3,4が入っているテーブルがありません
・データは3,4しかなくても、selectとしては1,2,3,4のデータが欲しいです
・1,2,3,4は可変の可能性があり、他のテーブルのcharacter varyingです(面倒なので数値にしていますが、実際は意味のある英文固定値)
試したこと
とりあえずcase文で対応しましたが、将来可変の必要があるので
ここの値はテーブルに外だしがいいかなと思い、テーブル設計も変更可です
回答2件
あなたの回答
tips
プレビュー