【发布时间】:2017-10-08 20:47:59
【问题描述】:
假设我有一个包含以下记录的表:SQL Fiddle
| category | begin | end |
|----------|---------------------|---------------------|
| a | 2017-09-26 08:00:00 | 2017-09-27 10:00:00 |
| b | 2017-10-02 13:00:00 | 2017-10-03 07:00:00 |
| a | 2017-10-06 02:00:00 | 2017-10-06 09:00:00 |
| a | 2017-10-06 11:00:00 | 2017-10-06 14:00:00 |
| a | 2017-10-06 19:00:00 | 2017-10-08 10:00:00 |
我希望能够计算每个类别的不同天数(在开始和结束之间)。所以:a 类包含 9 月 26 日至 27 日和 10 月 6 日至 8 日期间(其中 10 月 6 日出现在多个记录中),而 b 类只有 10 月 2 日至 3 日期间。因此,我希望得到以下结果:
| category | days |
|----------|------|
| a | 5 |
| b | 2 |
来自一些GROUP BY category 声明。这在 (My)SQL 中是否可行?
【问题讨论】:
-
a 的值应该是 5,而不是 6?
-
对不起,你是对的,我改例子的时候搞错了
标签: mysql sql datetime group-by