sql 查询 group by查询count个数 某记录不存在时显示0

如图中,数据表t中数据如图:按a分组,分别统计b为1,2,3时的个数。selecta,b,count(b)as个数fromtgroupbya,b;查询结果为图中没有红色一... 如图中,数据表t中数据如图:按a分组,分别统计b为1,2,3时的个数。
select a,b,count(b) as 个数 from t group by a,b; 查询结果为图中没有红色一行的部分,想显示红色一行怎么修改sql,求会的写一下,非常感谢。
展开
 我来答
鲜美还清湛灬白桦N
推荐于2017-09-06 · TA获得超过620个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:521万
展开全部
 create table t
 (
    id int,
    a int,
    b int
 )
 
 insert into t values(1,101,1)
 insert into t values(2,102,1)
 insert into t values(3,101,2)
 insert into t values(4,102,2)
 insert into t values(5,101,1)
 insert into t values(6,102,3)
 insert into t values(7,102,3)
 
 --先把T表的a,b做个笛卡尔积,在跟t表做left,然后统计
 select a.a,b.b,COUNT(c.id) As 个数  from 
 (select distinct a from t) a   cross join 
 (select distinct b from t) b
 left join t c on a.a=c.a and b.b=c.b
 Group by a.a,b.b

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式