下面是專案中按照男女年齡段統計的核心sql**:
[sql]view plain
copy
?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
andtr.age >=18
andtr.age <=29
then
1 else
0 end
) as
'男18--29歲'
, sum
(case
when
s.***=0
andtr.age >=18
andtr.age<=29
then
1 else
0 end
) as
'女18--29歲'
, sum
(case
when
s.***=1
andtr.age <=45
andtr.age>=30
then
1 else
0 end
) as
'男30--39歲'
, sum
(case
when
s.***=0
andtr.age<=45
andtr.age>=30
then
1 else
0 end
) as
'女30--39歲'
, sum
(case
when
s.***=1
andtr.age <=50
andtr.age>=46
then
1 else
0 end
) as
'男40--49歲'
, sum
(case
when
s.***=0
andtr.age<=50
andtr.age>=46
then
1 else
0 end
) as
'女40--49歲'
, sum
(case
when
s.***=1
andtr.age <=60
andtr.age>50
then
1 else
0 end
) as
'男50--59歲'
, sum
(case
when
s.***=0
andtr.age<=60
andtr.age>50
then
1 else
0 end
) as
'女50--59歲'
, sum
(case
when
s.***=1
andtr.age <=70
andtr.age>60
then
1 else
0 end
) as
'男60--69歲'
, sum
(case
when
s.***=0
andtr.age<=70
andtr.age>60
then
1 else
0 end
) as
'女60--69歲'
, sum
(case
when
s.***=1
andtr.age <=80
andtr.age>70
then
1 else
0 end
) as
'男70--79歲'
, sum
(case
when
s.***=0
andtr.age<=80
andtr.age>70
then
1 else
0 end
) as
'女70--79歲'
, sum
(case
when
s.***=1
andtr.age >80
then
1 else
0 end
) as
'男80歲以上'
, sum
(case
when
s.***=0
andtr.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 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...
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...