工作中总是会用到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。

这些仅仅是自己理解的内容,如果有什么不对,或者解释错误还希望帮忙指出。谢谢