sql语句问题:统计一个表中某一字段值分别等于几个特定值得个数然后显示在同一个表中

时间:2021-08-18 15:10:51
表:
--------------------------
姓名           状态
--------------------------
张三           状态1
张三           状态1
张三           状态2
李四           状态1
李四           状态2
--------------------------
统计后显示结果:
--------------------------------
姓名           状态1       状态2
张三             2           1
李四             1           1
--------------------------------

能否实现?请给出答案,谢!

6 个解决方案

#1


使用Group By 子句
Select Count(*) from 表 Group by 姓名,状态

—————————————————————————————————
┏━★━━◆━━★━┓ 
♂欢|◢CSDN◣|使♂        ▲*保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛       ▲自动添加签名......

让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip

#2


用sql语句达不到你的目的的
你可以在程序里面填充统计的表
(因为我以前试过)

#3


to chenhigh(小陈) :
如何填充,能否给个例子?asp.net的
拜托了!

#4


可以直接用SQL语句,在 查询分析器里可以调试看到结果:
select 姓名, 
sum(case 状态 when '状态1' then 1 when '状态2' then 0 end ) 状态1 ,
sum(case 状态 when '状态2' then 1 when '状态1' then 0 end ) 状态2 ,
group by 姓名

#5


忘记from 了

可以直接用SQL语句,在 查询分析器里可以调试看到结果:
select 姓名, 
sum(case 状态 when '状态1' then 1 when '状态2' then 0 end ) 状态1 ,
sum(case 状态 when '状态2' then 1 when '状态1' then 0 end ) 状态2 
from 表名
group by 姓名

#6


问题解决,多谢!

#1


使用Group By 子句
Select Count(*) from 表 Group by 姓名,状态

—————————————————————————————————
┏━★━━◆━━★━┓ 
♂欢|◢CSDN◣|使♂        ▲*保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛       ▲自动添加签名......

让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip

#2


用sql语句达不到你的目的的
你可以在程序里面填充统计的表
(因为我以前试过)

#3


to chenhigh(小陈) :
如何填充,能否给个例子?asp.net的
拜托了!

#4


可以直接用SQL语句,在 查询分析器里可以调试看到结果:
select 姓名, 
sum(case 状态 when '状态1' then 1 when '状态2' then 0 end ) 状态1 ,
sum(case 状态 when '状态2' then 1 when '状态1' then 0 end ) 状态2 ,
group by 姓名

#5


忘记from 了

可以直接用SQL语句,在 查询分析器里可以调试看到结果:
select 姓名, 
sum(case 状态 when '状态1' then 1 when '状态2' then 0 end ) 状态1 ,
sum(case 状态 when '状态2' then 1 when '状态1' then 0 end ) 状态2 
from 表名
group by 姓名

#6


问题解决,多谢!