すでに述べたように、年齢順が最も簡単です。
ただし、バンド番号またはコードを割り当てる必要がある場合、またはバンドごとの合計または統計が必要な場合、またはバンド内のその他の並べ替えが必要な場合は、別の方法でアプローチすることをお勧めします。年齢範囲、おそらくバンド番号またはコード、おそらく年齢バンドの名前、またはその他の「マスター」データを定義する AgeBand テーブルが必要になる場合があります。
その場合は、バンドコードを
left join AgeBand ab on details.age >= ab.FromAge and details.age <= ab.ToAge
...
order by ab.BandID, ...
しかし、AgeBand テーブルが必要なく、CASE ステートメントを使用して年齢層コードを計算し続けたい場合は、それも問題なく、必要なすべてである可能性があります。
できることは、現在のクエリを共通テーブル式 (CTE) に入れてデータを準備し、CTE に割り当てた名前を元テーブルとして使用して SELECT ステートメントを続行することです。
WITH q AS
(SELECT ...
CASE WHEN ... THEN "00-01"
WHEN ... THEN "02-03"
...
WHEN ... THEN "10-11"
END as bandcode
FROM yourinputdata as i
WHERE ...
)
SELECT bandcode, ...
FROM q
ORDER BY bandcode, ...
;
引用符の間の WITH とクエリは、共通テーブル式です。最初の行で「q」という名前を付けて、最後に参照します。最終結果を制御するのは下部の全選択です。