【发布时间】:2016-09-01 05:41:39
【问题描述】:
我目前在 MySQL 上遇到了一些问题。我正在尝试通过 timeend 获得最大的“结束”,其中 end
SELECT
timestart,
timeend,
MAX(num),
MIN(start) as start,
(case when MAX(end)<=timeend then MAX(end) end) AS end, value
FROM table
GROUP BY timeend
表格如下:(可以看到当值为null时,end大于timeend)
timestart timeend num start end value
08/15 09:46 | 08/15 10:07 | 1 | 08/15 09:48:33 | 08/15 09:48:49 | 15.3
08/15 09:46 | 08/15 10:07 | 2 | 08/15 09:48:55 | 08/15 09:49:11 | 15.3
08/15 09:46 | 08/15 10:07 | 3 | 08/16 08:00:00 | 08/16 08:00:00 |
08/15 09:46 | 08/15 10:07 | 4 | 08/16 08:00:00 | 08/16 08:00:00 |
08/15 09:46 | 08/15 10:07 | 5 | 08/16 08:00:00 | 08/16 08:00:00 |
08/15 09:46 | 08/15 10:07 | 5 | 08/15 10:03:20 | 08/15 10:03:35 | 15.3
08/15 09:46 | 08/15 10:07 | 6 | 08/15 10:03:42 | 08/15 10:03:57 | 15.3
08/15 09:46 | 08/15 10:07 | 7 | 08/15 10:04:02 | 08/15 10:04:18 | 15.3
08/15 09:46 | 08/15 10:07 | 8 | 08/15 10:04:23 | 08/15 10:04:38 | 15.3
08/15 09:46 | 08/15 10:07 | 9 | 08/15 10:04:43 | 08/15 10:04:59 | 15.3
08/15 09:46 | 08/15 10:07 | 10 | 08/15 10:05:04 | 08/15 10:05:19 | 15.3
08/15 09:46 | 08/15 10:07 | 11 | 08/15 10:05:24 | 08/15 10:05:40 | 15.3
08/15 09:46 | 08/15 10:07 | 12 | 08/15 10:05:45 | 08/15 10:06:00 | 15.3
08/15 09:46 | 08/15 10:07 | 13 | 08/15 10:06:05 | 08/15 10:06:20 | 15.3
Result
08/15 09:46 | 08/15 10:07 | 13 | 08/15 09:48:33 | NULL | 15.3
The Result I expect:
08/15 09:46 | 08/15 10:07 | 13 | 08/15 09:48:33 | 08/15 10:06:20 | 15.3
【问题讨论】:
-
timestart, timeend, start, end 数据类型在数据库中是 varchar 吗?
-
所以,数据并不像上面描述的那样。很混乱。 :-(