そのため、SQLではループは望ましいことではないと言われています。次の質問は、年齢範囲に基づいてヒストグラムを作成します。ご覧のとおり、すべてのグループがハードコーディングされています。この例では、私が探しているすべての値が100未満です。これらが数千に及ぶ場合はどうすればよいですか?どうすればこれをより拡張可能にすることができますか?
select bins, count(*) as numbers from
(
select id, patientage,
case
when patientage between 20 and 29 then '20-29'
when patientage between 30 and 39 then '30-39'
when patientage between 40 and 49 then '40-49'
when patientage between 50 and 59 then '50-59'
when patientage between 60 and 69 then '60-69'
when patientage between 70 and 79 then '70-79'
when patientage between 80 and 89 then '80-89'
when patientage between 90 and 99 then '90-99'
end as bins
from patient
inner join tblhospitals on tblhospitals.hospitalnpi=patient.hospitalnpi
where (tblhospitals.hospitalname like '%university%')
) as t
group by bins
order by bins