【发布时间】:2014-11-20 09:48:15
【问题描述】:
我正在努力解决这个问题。
我有一个包含 3 列的表格:
id, startDate, endDate
1, 2014-01-01, 2014-02-02
2, 2014-04-03, NULL
3, 2014-02-02, 2014-05-03
现在我想计算所有具有特殊条件的 id: 例如月份可能:
SELECT COUNT(*) FROM Table WHERE startDate <= "2014-05-31" and (endDate >= "2014-05-01" or endDate is NULL)
如何通过按年和月分组来实现这一点?
startDate 应始终为 = firstDayofGivenMonth 或 Null
结果应该是这样的:
year, month, count
2014, 01, 1
2014, 02, 2
2014, 03, 2
2014, 04, 2
2014, 05, 2
2014, 06, 1
...
感谢您的帮助!
史蒂夫
【问题讨论】:
-
(my)sql 中的日期遵循特定格式。除非您掌握了这一点,否则您将一事无成!
-
我更改了日期格式。日期格式对我来说不是问题。
-
日期格式绝对是(或曾经是)(至少部分)问题!!
-
给定月份是什么意思?
-
你的意思是如果
startDate在1月,endDate在3月,那么一月、二月和三月的计数应该加1?
标签: mysql date count group-by where