求SQL查询语句,表的列数据按照条件不同输出为不同的列,并统计个数。

例如:表A单位类型a1b1a2b2c2b3查询结果显示:单位为a,类型为1的几个,类型为2的几个,类型为3的几个,3中类型总共有几个。单位为b,类型为1的几个,类型为2的... 例如:
表A
单位 类型
a 1
b 1
a 2
b 2
c 2
b 3
查询结果显示:

单位为a,类型为1的几个,类型为2的几个,类型为3的几个,3中类型总共有几个。
单位为b,类型为1的几个,类型为2的几个,类型为3的几个,3中类型总共有几个。
单位为c,类型为1的几个,类型为2的几个,类型为3的几个,3中类型总共有几个。
具体如下:
单位 类型数量 类型为1 类型为2 类型为3
a 2 1 1 0
b 3 1 1 1
c 1 0 1 0
有点复杂的查询,新手请教各路大神,越详细越好。祝福您身体健康,多金多福。分少,请包涵!
展开
 我来答
COUNTIFABS
推荐于2017-11-25 · TA获得超过2154个赞
知道大有可为答主
回答量:1594
采纳率:55%
帮助的人:1233万
展开全部
select distinct(单位),COUNT(单位) as 类型数量,
sum(case when  类型=1 then 1 else 0 end)  as 类型为1 ,
sum(case when 类型=2 then 1 else 0 end) as 类型为2,
sum(case when 类型=3 then 1 else 0 end) as 类型为3
from sh1
group by 单位

 

已测试,结果:


a2110
b3111
c1010

 


也祝福您身体健康,多金多福 ,快采纳,哈哈!

sx6711376
2013-07-15 · 超过20用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:40.4万
展开全部
select 单位,
SUM(case 类型 when '1' then 1 else 0 end) as 类型为1,
SUM(case 类型 when '2' then 1 else 0 end) as 类型为2,
SUM(case 类型 when '3' then 1 else 0 end) as 类型为3
from 表A GROUP BY 单位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式