id | brand |
+-------------+-------+|
| 1001 | A |
| 1002 | A |
| 1002 | B |
| 1002 | B |
| 1002 | B |
| 1002 | C |
| 1003 | A |
| 1003 | B |
| 1003 | C |
| 1004 | A |
| 1004 | A |
| 1004 | B |
| 1005 | A |
| 1005 | A |
假设我有如上的数据,表的名字假设为info吧,我想得到如下的的输出,
就是多出来的num字段,是对id和brand组合的计数统计,关键问题是,比如1001和B的组合是没有的,但是也要给出一个0,来表示没有这个组合,其实如果是直接忽略掉次数为0的这种情况是比较简单的,但是一定要把为0的情况也列出来。我实在想不出来了,求助大家帮帮忙,谢谢了
id | brand |num
+-------------+-------+-------
| 1001 | A |2
| 1001 | B |0
| 1001 | C |0
| 1002 | A |1
| 1002 | B |3
| 1002 | C |1
| 1003 | A |1
| 1003 | B |1
| 1003 | C |1
| 1004 | A |2
| 1004 | B |1
| 1004 | C |0
| 1005 | A |2
| 1005 | B |0
| 1005 | C |0
问个sql语句,统计两个字段组合的行数,要把行数为0的情况也列出来,谢谢(结果正确再追加20分)
答案:2 悬赏:10 手机版
解决时间 2021-02-19 19:19
- 提问者网友:低吟詩仙的傷
- 2021-02-19 13:15
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-02-19 14:07
try
SELECt t.id,t.brand, count(info.id)
FROM (SELECt DISTINCT t1.brand, info.id from (SELECt distinct brand from info) t1, info) t LEFT JOIN info
ON t.brand = info.brand and t.id = info.id
group by t.id,t.brand
order by t.id
SELECt t.id,t.brand, count(info.id)
FROM (SELECt DISTINCT t1.brand, info.id from (SELECt distinct brand from info) t1, info) t LEFT JOIN info
ON t.brand = info.brand and t.id = info.id
group by t.id,t.brand
order by t.id
全部回答
- 1楼网友:毛毛
- 2021-02-19 14:45
alter table table1 add no_id char(12) not null unique
你想加入 非空的字段,但是数据库原来是有数据的,因此会冲突,所以不能加非空的字段。
你可以先加 允许空的字段,再填入数据,再修改为 非空字段即可。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯