質問: 年齢分布テーブルの再集計sql テーブルa 年齢,人数 20,15 21,11 22,26 .... 30,5 31,88 ... 60,5 上記テーブルaからのsqlで下記のデータが欲しいと思っております。 【欲しい結果】 年齢範囲,人数 20~24,50 25~29,33 30~34,199 ... ただし、 select '20~24'as 年齢範囲,count(*)as 人数 from テーブルa where 条件1 union select '25~29'as 年齢範囲,count(*)as 人数 from テーブルa where 条件2 union select '30~34'as 年齢範囲,count(*)as 人数 from テーブルa where 条件3 ... というsqlは使いたくないです。(テーブルaの記述が長めなので、同じものを複数記述したくないのです) また結果が 項目名:20~24,25~29,30~34,... レコード:50,33,199,... というのも遠慮したいです。 case文やsum、groupを使えば、できそうな気がするのですが、、、 ご教授お願い致します。
回答: no1です 失礼します。間違いました。 select '20~24', sum(case when 年齢 >= 20 and 年齢 <= 24 then 人数 end), '25~29', sum(case when 年齢 >= 25 and 年齢 <= 29 then 人数 end), '30~34', sum(case when 年齢 >= 30 and 年齢 <= 34 then 人数 end) from テーブルa where 条件1 and 条件2 and 条件3