LINUX.ORG.RU

История изменений

Исправление unC0Rr, (текущая версия) :

generate_series(date_trunc('year', CURRENT_DATE - interval '2 years'), date_trunc('year', CURRENT_DATE), '1 year') для получения серии из начал трёх последних лет, EXTRACT(hour FROM time) для получения часа из времени, ну в целом что-то такое получится:

SELECT avg(td.temperature) FROM 
  (SELECT generate_series(date_trunc('year', CURRENT_DATE - interval '3 years'), date_trunc('year', CURRENT_DATE - interval '1 year'), '1 year') as y) as years
  JOIN tempdata as td ON (td.time BETWEEN years.y AND years.y + interval '1 month' AND EXTRACT(hour FROM td.time) BETWEEN 8 AND 15)
GROUP BY date_trunc('hour', td.time)

Исходная версия unC0Rr, :

generate_series(date_trunc('year', CURRENT_DATE - interval '3 years'), date_trunc('year', CURRENT_DATE), '1 year') для получения серии из начал трёх последних лет, EXTRACT(hour FROM time) для получения часа из времени, ну в целом что-то такое получится:

SELECT avg(td.temperature) FROM 
  (SELECT generate_series(date_trunc('year', CURRENT_DATE - interval '3 years'), date_trunc('year', CURRENT_DATE - interval '1 year'), '1 year') as y) as years
  JOIN tempdata as td ON (td.time BETWEEN years.y AND years.y + interval '1 month' AND EXTRACT(hour FROM td.time) BETWEEN 8 AND 15)
GROUP BY date_trunc('hour', td.time)