SQL Server中的行列轉換問題

來源:互聯網
上載者:User
原表結構
序號 性別 部門 工資
1 部門a 800
2 部門b 900
3 部門a 400
4 部門d  1400
5 部門e 1200
6 部門f 500
7 部門a  300
8 部門d 1000
9 部門d 1230
10 部門b 2000
11 部門c 2000
12 部門b 1200

最終顯示

部門名  人數      男         女     小於800元  從800至999  從1000元至1190元     大於1200元
部門a          3 2 1 2 1 0 0
部門b         3 1 2 0 1 0 2
部門c          1 1 0 0 0 0 1
部門d         3 1 2 0 0 1 2
部門e         1 1 0 0 0 0 1
部門f          1 1 0 1 0 0 0

SELECT 部門名,COUNT(序號) as 人數,
     SUM(CASE 性別 WHEN 1 THEN 1 ELSE 0 END) as 男,
           SUM(CASE 性別 WHEN 2 THEN 1 ELSE 0 END) as 女,
     SUM(CASE SIGN(工資-800) WHEN -1 THEN 1 ELSE 0 END) as 小於800元,
     SUM((CASE SIGN(工資-800)*SIGN(工資-1000)                     /**//*用*來實現<和>功能*/
          WHEN -1 THEN 1 ELSE 0 END)+(CASE 工資
          WHEN 800   THEN 1 ELSE 0 END)) as 從800至999,          /**//*注意別名不能以數字開頭*/
     SUM((CASE SIGN(工資-1000)*SIGN(工資-1200)
          WHEN -1 THEN 1 ELSE 0 END)+(CASE 工資
          WHEN 1000 THEN 1 ELSE 0 END)) as 從1000元至1199元,
     SUM((CASE SIGN(工資-1200) WHEN 1 THEN 1 ELSE 0 END)
     +(CASE 工資 WHEN 1200 THEN 1 ELSE 0 END)) as 大於1200元
FroM 工資明細表 
GROUP BY 部門名

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.