工作中總是會用到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。
這些僅僅是自己理解的內容,如果有什麼不對,或者解釋錯誤還希望幫忙指出。謝謝