【发布时间】:2022-01-18 11:43:57
【问题描述】:
我有一个数据库,其中存储了两个位置的一些预测。每个位置都有 3 天的预报,每天每小时都有多个预报。 我想选择每个位置每天 3 个最新预报的平均温度。位置保存为“位置”,每天保存为“applicable_date”,每天都有一个预测,每小时保存为“已创建”。我正在尝试这样的事情但不起作用:
SELECT * FROM (
SELECT * FROM `forecast` GROUP BY location
) GROUP BY applicable_date
ORDER BY created DESC
LIMIT 3
【问题讨论】:
-
请提供您的表格结构、测试数据和想要的结果minimal reproducible example
-
按位置分组并预测截断到日期的日期时间。获取每组的最大预测日期时间。
-
@Nathan_Sav 您的查询将为每个位置提供一个最大日期时间,而不是“每天”。
-
您应该接受最佳答案,然后提出新问题。考虑到基于原始问题已经提供的答案/工作,更改问题以添加更多请求并不是一个好主意。您还忽略了提供有关您正在使用的 MySQL 版本的详细信息:
SELECT version();这可能会简化解决方案,例如,如果您使用的是 MySQL 8.0 或更高版本或 MariaDB 10.2.2 或更高版本。很难知道您是需要超过 3 天的AVG还是每天的最后 3 个样本。
标签: mysql sql select group-by sql-order-by