Sql语句获取 统计值

lzid2008 2011-11-09 05:18:02
现有张表 Table1
字段 [uId]
,[uName]
,[p1_weiBo]
,[p2_wangYi]
,[p3_renRen]
,[p4_douBan]
,[p5_youKu]

其中
[p1_weiBo] ,[p2_wangYi],[p3_renRen],[p4_douBan],[p5_youKu]
就2个数值 Yes 或者 No

我现在想用一句Sql语句,获取 用户P1...P5的 Yes 的数量.

请高人指点,谢谢

...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-11-09
  • 打赏
  • 举报
回复
select
uid,uname,sum(case weiBo when 'yes' then 1 else 0 end) as 数量
from
(
select uid,uname,p1_weiBo from Table1
union all
select uid,uname,p2_weiBo from Table1
union all
select uid,uname,p3_weiBo from Table1
union all
select uid,uname,p4_weiBo from Table1
union all
select uid,uname,p5_weiBo from Table1
)t
group by
uid,uname
中国风 2011-11-09
  • 打赏
  • 举报
回复
字符也可這樣用

SELECT
[uId]
,[uName]
,(LEN(col)-REPLACE(col,'Yes',''))/3
FROM
(SELECT
[uId]
,[uName]
,[p1_weiBo]+[p2_wangYi]+[p3_renRen] +[p4_douBan]+[p5_youKu] AS col
FROM table1
)t
jwdream2008 2011-11-09
  • 打赏
  • 举报
回复
select [uId]
,[uName]
,(case when [p1_weiBo]='Yes' then 1 else 0 end)+
(case when [p2_wangYi]='Yes' then 1 else 0 end)+
(case when [p3_renRen]='Yes' then 1 else 0 end)+
(case when [p4_douBan]='Yes' then 1 else 0 end)+
(case when [p5_youKu]='Yes' then 1 else 0 end) as NUM
from Table1
中国风 2011-11-09
  • 打赏
  • 举报
回复
SELECT *
[uId]
,[uName]
,CAST([p1_weiBo] AS int)+CAST([p2_wangYi] AS int)+CAST([p3_renRen] AS int)+CAST([p4_douBan] AS int)+CAST([p5_youKu] AS int)
FROM table1
--小F-- 2011-11-09
  • 打赏
  • 举报
回复
select
sum(case weiBo when 'yes' then 1 else 0 end) as 数量
from
(
select p1_weiBo from Table1
union all
select p2_weiBo from Table1
union all
select p3_weiBo from Table1
union all
select p4_weiBo from Table1
union all
select p5_weiBo from Table1
)t
jwdream2008 2011-11-09
  • 打赏
  • 举报
回复
select [uId]
,[uName]
,(case when [p1_weiBo]='Yes' then 1 else 0 end)+
(case when [p2_weiBo]='Yes' then 1 else 0 end)+
(case when [p3_weiBo]='Yes' then 1 else 0 end)+
(case when [p4_weiBo]='Yes' then 1 else 0 end)+
(case when [p5_weiBo]='Yes' then 1 else 0 end) as NUM
from Table1
中国风 2011-11-09
  • 打赏
  • 举报
回复
是Bit

直接換為int 用+就行了

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧