SQL關鍵字Pivot(行變列)

工作中總是會用到sql語句,統計同一字段不同值的數據條數,我總是會在網上查找好久,終於還是想自己記錄一下,一方面可以讓自己加深印象,另一方面如果以後忘記也可以直接找到,不用多花時間來查找相關內容。

首先要記住關鍵字Pivot(樞紐):以用戶表信息爲例,查詢用戶信息表中男女人數

SELECT  Female  AS [女],  [Male]   AS [男] 

FROM ( SELECT  [CardID] ,[Sex]

FROM  [UserInfo] ) AS [SourceTable] 

PIVOT (COUNT([CardID]) FOR Sex IN ([Female], [Male]  )) AS [PivotTable]   


解析:首先寫一個簡單的查詢語句要有顯示的必要信息:

 SELECT  CardID ,Sex  FROM  UserInfo

CardID 爲主鍵用來計算人數count;Sex 是查詢條件中必不可少的

將這個簡單的表重名名爲SourceTable。

PIVOT 後面是聚合函數Count

For  要成爲列標題的值的列[Sex]

IN (要成爲列標題的值([Female], [Male]  ))

AS 重新定義完成的表名 [PivotTable] 

這些只是一個簡單的例子可以舉一反三,寫出更復雜的sql。

這些僅僅是自己理解的內容,如果有什麼不對,或者解釋錯誤還希望幫忙指出。謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章