我想知道某个月加入的员工人数。下面是我的样本数据。
如果一个月内没有员工加入,则查询应显示零,
我想出了这样的办法,但这只显示了在某个特定月份有一个参与者的月份,
SELECT
COUNT(*) AS count,
CASE
WHEN MONTH(startDate) = 1 THEN 'JAN'
WHEN MONTH(startDate) = 2 THEN 'FEB'
WHEN MONTH(startDate) = 3 THEN 'MAR'
WHEN MONTH(startDate) = 4 THEN 'APR'
WHEN MONTH(startDate) = 5 THEN 'MAY'
WHEN MONTH(startDate) = 6 THEN 'JUN'
WHEN MONTH(startDate) = 7 THEN 'JUL'
WHEN MONTH(startDate) = 8 THEN 'AUG'
WHEN MONTH(startDate) = 9 THEN 'SEP'
WHEN MONTH(startDate) = 10 THEN 'OCT'
WHEN MONTH(startDate) = 11 THEN 'NOV'
WHEN MONTH(startDate) = 12 THEN 'DEC'
END AS SMonth
FROM
Reports
GROUP BY SMonth
我正在使用mysql。
编辑
报告表中有跨越不同年份的数据,例如198820122015年的数据等,因此可能有2015年1月的joinee数据,但没有2018年1月的数据
4条答案
按热度按时间8ulbf1ek1#
您可以使用月份序列和mananeg作为空值
ct2axkht2#
像这样的东西也许合适。但是你也可以从date函数中得到month。
7cwmlq893#
这种方法也很有效,你应该有最新版本的mysql。
eulz3vhy4#
你可以用
coalesce(count(*), 0)
或者ifnull(count(*), 0)
在您的查询中。