A SQL for range statistics and aggregations

example:

 


select sum(case when age<=6 then 1 else 0 END) as '0-6', sum(case when age>=7  and age<=18 then 1 else 0 END) as '7-18', sum(case when age>=19  and age<=25 then 1 else 0 END) as '19-25', sum(case when age>=26  and age<=30 then 1 else 0 END) as '26-30', sum(case when age>=31  and age<=35 then 1 else 0 END) as '31-35', sum(case when age>=36  and age<=40 then 1 else 0 END) as '36-40', sum(case when age>=41  and age<=45 then 1 else 0 END) as '41-45', sum(case when age>=46  and age<=50 then 1 else 0 END) as '46-50', sum(case when age>=51  and age<=55 then 1 else 0 END) as '51-55', sum(case when age>=56  and age<=60 then 1 else 0 END) as '56-60', sum(case when age>=61  and age<=65 then 1 else 0 END) as '61-65', sum(case when age>=66  and age<=70 then 1 else 0 END) as '66-70', sum(case when age>=71  and age<=75 then 1 else 0 END) as '71-75', sum(case when age>=76  and age<=80 then 1 else 0 END) as '76-80', sum(case when age>=81  then 1 else 0 END) as '≧81' from ( select age from his_sign hs ) age  

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326348885&siteId=291194637