MySQL按年齡段查詢

2021-12-30 00:06:34 字數 1971 閱讀 4872

下面是專案中按照男女年齡段統計的核心sql**:

count(tr.id)as '體檢總人數',

sum(case when s.***=1 then 1 else 0 end) as '男體檢總數',

sum(case when s.***=0 then 1 else 0 end) as '女體檢總數',

sum(case when s.***=1 and tr.age >=18 and tr.age <=29 then 1 else 0 end) as '男18--29歲',

sum(case when s.***=0 and tr.age >=18 and tr.age<=29 then 1 else 0 end) as '女18--29歲',

sum(case when s.***=1 and tr.age <=45 and tr.age>=30 then 1 else 0 end) as '男30--39歲',

sum(case when s.***=0 and tr.age<=45 and tr.age>=30 then 1 else 0 end) as '女30--39歲',

sum(case when s.***=1 and tr.age <=50 and tr.age>=46 then 1 else 0 end) as '男40--49歲',

sum(case when s.***=0 and tr.age<=50 and tr.age>=46 then 1 else 0 end) as '女40--49歲',

sum(case when s.***=1 and tr.age <=60 and tr.age>50 then 1 else 0 end) as '男50--59歲',

sum(case when s.***=0 and tr.age<=60 and tr.age>50 then 1 else 0 end) as '女50--59歲',

sum(case when s.***=1 and tr.age <=70 and tr.age>60 then 1 else 0 end) as '男60--69歲',

sum(case when s.***=0 and tr.age<=70 and tr.age>60 then 1 else 0 end) as '女60--69歲',

sum(case when s.***=1 and tr.age <=80 and tr.age>70 then 1 else 0 end) as '男70--79歲',

sum(case when s.***=0 and tr.age<=80 and tr.age>70 then 1 else 0 end) as '女70--79歲',

sum(case when s.***=1 and tr.age >80 then 1 else 0 end) as '男80歲以上',

sum(case when s.***=0 and tr.age>80 then 1 else 0 end) as '女80歲以上'

我拿其中一句解釋一下

sum(case when s.***=1 and tr.age >=18 and tr.age <=29 then 1 else 0 end) as '男18--29歲',

先看sum的括號裡面的部分

case when *** = 1 and age>=18 and age <=29 then 1 else 0 end

它表示的含義是:如果性別為1(也就是男),並且年齡在18-29歲之間成立為1,不成立為0.

case和end 是乙個關鍵字你可以理解為語句的開始和結束。

when相當於if做判斷,then就是判斷之後顯示的結果。如果成立顯示為1,不成立顯示為0

sum就是將各個值相加。形如:1+1+0+1+0+1+1+0+1+1

專案最後統計的結果截圖形如:

MySQL按年齡段查詢

下面是專案中按照男女年齡段統計的核心sql sql view plain copy print count tr.id as 體檢總人數 sum case when s.1 then 1 else 0 end as 男體檢總數 sum case when s.0 then 1 else 0 end ...

sql 年齡段統計

表employee empid,birthday 部分資料 empid birthday 1 1964 3 2 2 1980 5 9 3 1972 9 30 想得到按年齡段的人數,比如說20 30歲的員工數,30 40歲的員工數,40 50歲的員工數,50歲以上的員工數 即由員工表得到以下的統計資料...

147 統計各年齡段人數

函式fun的功能是 統計各年齡段的人數,n個年齡通過呼叫隨機函式獲取,並放在主函式的age陣列中,要求函式0 9歲的人數放在d 0 以此類推,把100歲 含100歲 以上的年齡人數都放在d 10 中,結構在主函式中輸出。define crt secure no warnings include de...