所以有人告诉我,在 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