【问题标题】:MySQL MAX CASE WHEN and GROUP ByMySQL MAX CASE WHEN 和 GROUP By
【发布时间】: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 吗?
  • 所以,数据并不像上面描述的那样。很混乱。 :-(

标签: mysql date


【解决方案1】:
SELECT 
  timestart,
  timeend,
  MAX(num) as num,
  MIN(start) as start,
  MAX(end) as end,
  value
FROM table 
WHERE end <= timeend 
GROUP BY timestart, timeend

【讨论】:

  • 哇,它有效!谢谢!但是我还是不太明白为什么,你能解释一下吗?非常感谢!
  • WHERE 条件确保 end stackoverflow.com/questions/1031076/…
猜你喜欢
  • 1970-01-01
  • 2014-05-15
  • 2021-03-15
  • 2015-07-21
  • 1970-01-01
  • 2022-01-04
  • 2017-04-19
  • 1970-01-01
  • 2018-06-29
相关资源
最近更新 更多