【发布时间】:2018-07-31 00:58:26
【问题描述】:
我试图在我的表格中获取最近 6 个月的最低和最高价格,并按月将它们显示为一组。我的查询没有返回相应的行值,例如最高价格为或最低价格的日期时间。
我想选择最低和最高价格以及它们发生的日期时间以及该行的其余数据... (我为report_term使用concat的原因,因为我需要在显示结果时将其与数据集一起打印。例如2018年2月-> ....,2018年1月-> ...)
SELECT metal_price_id, CONCAT(MONTHNAME(metal_price_datetime), ' ', YEAR(metal_price_datetime)) AS report_term, max(metal_price) as highest_gold_price, metal_price_datetime FROM metal_prices_v2
WHERE metal_id = 1
AND DATEDIFF(NOW(), metal_price_datetime) BETWEEN 0 AND 180
GROUP BY report_term
ORDER BY metal_price_datetime DESC
我做了一个例子,从我的数据库中提取: http://sqlfiddle.com/#!9/617bcb2/4/0
我想要的结果是查看按月、最小日期、最大日期...以及过去 6 个月内的所有价格分组的最低和最高价格。
谢谢
更新。 下面的代码有效,但它返回超过指定 180 天的行。我刚刚查了一下,是因为它加入的价格可能会在这些年来重复多次....见:http://sqlfiddle.com/#!9/5f501b/1
【问题讨论】:
标签: mysql