【发布时间】:2017-12-14 14:28:53
【问题描述】:
我有一个非常小的 SQL 表,其中列出了参加的课程和参加日期。我可以使用下面的代码来统计每个月的参加人数
select to_char(DATE_ATTENDED,'YYYY/MM'),
COUNT (*)
FROM TRAINING_COURSE_ATTENDED
WHERE COURSE_ATTENDED = 'Fire Safety'
GROUP BY to_char(DATE_ATTENDED,'YYYY/MM')
ORDER BY to_char(DATE_ATTENDED,'YYYY/MM')
这会按预期返回每个月有与会者的列表。但是我想把它列为
January 2
February 0
March 5
如何将计数结果与空值一起显示?我的桌子很基础
1234 01-JAN-15 Fire Safety
108 01-JAN-15 Fire Safety
1443 02-DEC-15 Healthcare
1388 03-FEB-15 Emergency
1355 06-MAR-15 Fire Safety
1322 09-SEP-15 Fire Safety
1234 11-DEC-15 Fire Safety
我只需要显示每个月和参加消防安全的总人数。有一段时间没有使用 SQL 开发人员,因此感谢您的帮助。
【问题讨论】:
-
您需要一个包含所有月份的表。我建议搜索“日历表”
-
... right outer join calendar_table ...(我建议在左连接之前先右连接的极少数情况之一。)