小菜鸟求助大佬们,如何才能使SQL查询中结果为空的显示为0呢?具体情况如下:

qq_33481128 2018-04-14 06:15:29
这是数据集:

enrollment_id time source event
1 2014-06-14T09:38:29 server navigate
1 2014-06-14T09:38:39 server access
1 2014-06-14T09:38:39 server access
1 2014-06-14T09:38:48 server access
1 2014-06-14T09:41:49 browser problem
1 2014-06-14T09:41:50 browser problem
1 2014-06-14T09:42:28 browser problem
1 2014-06-14T09:42:30 browser problem
1 2014-06-14T09:43:20 browser problem
1 2014-06-14T09:43:25 browser problem
1 2014-06-14T09:43:25 server problem
1 2014-06-14T09:43:40 server problem
1 2014-06-14T09:44:29 browser page_close
1 2014-06-19T06:21:04 server navigate
1 2014-06-19T06:21:16 server access
1 2014-06-19T06:21:16 server access
1 2014-06-19T06:21:32 server access
1 2014-06-19T06:21:32 browser page_close
1 2014-06-19T06:21:45 server access
1 2014-06-19T06:21:46 browser page_close
1 2014-06-19T06:22:12 server access

这是代码:
SELECT enrollment_id,COUNT(*)as discussion
FROM log_train
WHERE event='discussion'GROUP BY enrollment_id ORDER BY enrollment_id;

这是结果:
3 26
5 34
7 33
12 1
13 4
16 28
18 3
20 1
26 1
31 6
32 7
35 13
39 3
45 45


我想要的结果使每个enrollment_id 下的disscussion,如果是0,就显示0.但是我得到的结果如果disscussion如果为0,则不显示这条id和0。


请问我该怎么改呢??
...全文
828 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2018-04-19
  • 打赏
  • 举报
回复
select enrollment_id, (select count(*) from log_train where log_train.enrollment_id = t.enrollment_id) from log_train t group by enrollment_id
surl61240 2018-04-16
  • 打赏
  • 举报
回复
试下这个: select aa.enrollment_id,isnull(bb.cnt,0) discussion from (SELECT distinct enrollment_id FROM log_train WHERE event='discussion') aa left join (select enrollment_id,count(1) cnt from log_train where event='discussion' GROUP BY enrollment_id) bb on aa.enrollment_id=bb.enrollment_id

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧