sql语句统计数量,统计一个字段的值的数量

数据库字段如下idtypelevel1质量一级2服务二级3态度三级4质量二级5态度一级现在需要统计的结果为type总数量一级二级三级质量2110服务1010态度2101... 数据库字段如下
id type level
1 质量 一级
2 服务 二级
3 态度 三级
4 质量 二级
5 态度 一级
现在需要统计的结果为
type 总数量 一级 二级 三级
质量 2 1 1 0
服务 1 0 1 0
态度 2 1 0 1
展开
 我来答
掌瞬爱A
2010-04-22 · TA获得超过1309个赞
知道小有建树答主
回答量:1137
采纳率:87%
帮助的人:384万
展开全部
pivot

--SQL SERVER 2000 静态SQLselect type as type ,
max(case level when '一级' then id else 0 end) 一级,
max(case level when '二级' then id else 0 end) 二级,
max(case level when '三级' then id else 0 end) 三级,
count(id) 总数量
from tb
group by type
然后再汇总,或者可以写个视图就ok了

--SQL SERVER 2000 动态SQL
declare @sql varchar(8000)
set @sql = 'select type '
select @sql = @sql + ' , max(case level when ''' + level + ''' then id else 0 end) [' + level + ']'
from (select distinct level from tb) as a
set @sql = @sql + ' from tb group by type'
exec(@sql)

--SQL SERVER 2005 静态SQL。
select * from (select * from tb) a pivot (max(id) for level in (一级,二级,三级)) b

--SQL SERVER 2005 动态SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + level from tb group by level
exec ('select * from (select * from tb) a pivot (max(id) for level in (' + @sql + ')) b')
华夏日长兴
推荐于2017-11-23 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3739万
展开全部
select type,count(*) as 总数量,
sum(case when level='一级' then 1 else 0 end) as 一级,
sum(case when level='二级' then 1 else 0 end) as 二级,
sum(case when level='三级' then 1 else 0 end) as 三级
from table group by type

楼上的应该改改吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzp4881
2010-04-22 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:3008万
展开全部
select type,sum(*) as 总数量,
sum(case when level='一级' then 1 else 0 end) as 一级,
sum(case when level='二级' then 1 else 0 end) as 二级,
sum(case when level='三级' then 1 else 0 end) as 三级
from table group by type
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
058005
2010-04-22 · TA获得超过414个赞
知道小有建树答主
回答量:301
采纳率:50%
帮助的人:122万
展开全部
select type,count(1) from table group by type
union all
select level,count(1) from table group by level
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式