【发布时间】:2022-01-04 11:25:28
【问题描述】:
SELECT temperature
FROM Temp_data
WHERE reading_time >= '$date' - INTERVAL 6 HOUR
AND reading_time <= '$date' + INTERVAL 8 HOUR
| temperature | reading_time |
|---|---|
| 25.6 | 2022-01-03 18:03:05 |
| 24.9 | 2022-01-03 18:13:05 |
| 25.3 | 2022-01-03 18:23:05 |
| ... | ... |
| 29.6 | 2022-01-04 07:53:05 |
此数据仅适用于一天。如果要获取每天 18:00 - 8:00 之间的平均温度数据,并以该月的一周的形式对其进行平均。我如何查询数据以获取它?
(预期)
| Average temperature | week_start_date |
|---|---|
| 25.4 | 2021-12-01 |
| 25.5 | 2021-12-05 |
| 26.3 | 2021-12-12 |
| 26.4 | 2021-12-19 |
| 26.1 | 2021-12-26 |
【问题讨论】:
-
您使用的是哪个 dbms? (在日期/时间方面,许多产品远不符合 ANSI SQL。)
-
提示:GROUP BY, AVG()。
-
您还必须更明确地说明平均值的含义:您是指数据集中温度值的平均值,还是平均值温度 尽可能根据数据集中的值给出。
-
不知道怎么解释。我只是不想要每天所有平均温度的平均值。我想要夜间(下午 6:00 -上午 8:00)整周的平均温度。
-
我尝试了 avg() 和 group by(),但在当天晚上和第二天早上之间的时间段内它不起作用