Mysql查询问题 - 日期GroupBy

时间:2017-06-25 06:42:05

标签: mysql

我在下面的sql查询中遇到了很大的问题,基本上我想按日期“Y-m-d”对表进行分组,找到该组的最小值并返回它发生的时间。

然而,它保持返回时间= 00:00:00,我不知道有什么问题。任何帮助将受到高度赞赏。

例如:对于第一个结果,它正确计算了该组的最低价格,但时间是04:00:00,但它仍然返回00:00:00

根据返回的ID,它似乎返回该组第一个元素的日期 - 而不是最低价格的实际日期。

Select val_date 
     , id
     , MIN(average_price) AS min_value 
  from tableY
 GROUP 
    BY Month(val_date) 
     , Year(val_date) 
     , Day(val_date);

表:

sql

结果:

[{"val_date":"2017-01-01 00:00:00","id":1,"min_value":964.33},
{"val_date":"2017-01-02 00:00:00","id":25,"min_value":998.24},
{"val_date":"2017-01-03 00:00:00","id":49,"min_value":1016.4},
{"val_date":"2017-01-04 00:00:00","id":73,"min_value":1034.02}

1 个答案:

答案 0 :(得分:0)

Select val_date 
     , id
     , MIN(average_price) AS min_value 
  from tableY
 GROUP 
    BY DATE_FORMAT(val_date,'%m') 
     , DATE_FORMAT(val_date,'%Y') 
     , DATE_FORMAT(val_date,'%d';

Select val_date 
     , id
     , MIN(average_price) AS min_value 
  from tableY
 GROUP 
    BY DATE_FORMAT(val_date,'%Y-%m-%d')

尝试以上代码。

希望这会对你有所帮助。