工作中总是会用到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。
这些仅仅是自己理解的内容,如果有什么不对,或者解释错误还希望帮忙指出。谢谢
转载于:https://blog.51cto.com/xinchq2011/1439905