sql 一个sql语句返回同一张表两个count

表ID状态112231415061718291102我想要的结果状态为1的总数状态为2的总数不知道能否在一个sql语句实现比如:slelectcount(),count(... 表ID 状态1 12 23 14 15 06 1 7 18 2 9 110 2 我想要的结果状态为1的总数 状态为2的总数 不知道能否在一个sql语句实现比如:slelect count(),count() from 表 where....................不知道该怎么写。。不要用 union all 展开
 我来答
匿名用户
2013-08-26
展开全部
select sum(case [状态] when 1 then 1 else 0 end) as [状态为1], sum(case [状态] when 2 then 1 else 0 end) as [状态为2] from [表]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-26
展开全部
可以这样: SELECT [状态],Count(*) as 总数 FROM [表] Where [状态]=0 or [状态]=1 Group by [状态]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-26
展开全部
select top 1
(select COUNT(state) from [表] where state=2),
(select COUNT(state) from [表] where state=1)
from [表]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-26
展开全部
declare @sql varchar(8000)
set @sql = 'select '
select @sql = @sql +
'状态' + cast(状态 as varchar(10)) + '=sum(coalesce(case 状态 when ' + cast(状态 as varchar(10)) + ' then 1 end, 0)),'
from 表 group by 状态
set @sql = left(@sql, LEN(@sql)-1) + ' from 表'
exec (@sql);
go
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水木小知
2017-07-11 · TA获得超过194个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:68.8万
展开全部
你说的select count(),count()有点难实现,试试我这句 select state, count(state) from 表名 where state = 1 or state = 2 group by state
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式