ВЫБЕРИТЕ МАКСИМАЛЬНОЕ значение температуры ТЕКУЩИЙ ДЕНЬ, но последние ГОДЫ из ВСЕЙ истории - PullRequest
0 голосов
/ 15 марта 2020

Я хотел бы попросить вас о помощи с SQL. У меня есть база данных с 4 столбцами. (время, темп, гул, нажмите) В этой таблице приведены данные с моей метеостанции. Прямо сейчас в этой таблице 110000 строк с записями за последние 3 года. Я хочу получить максимальные и минимальные значения температуры для всех последних лет в один день, как сегодня.

Я знаю, как получить все временные данные за последние годы в тот же день, но я не знаю, что дальше: -D

SELECT temp 
FROM `table_name` 
WHERE (
    YEAR(time) < YEAR(CURDATE()) 
    AND MONTH(time) = MONTH(CURDATE()) 
    AND DAY(time) = DAY(CURDATE())
)

Извините за мой плохой английский sh.

Спасибо

1 Ответ

1 голос
/ 15 марта 2020

Вы можете использовать арифметику даты и агрегирование:

select min(temp) min_temp, max(temp) max_temp
from table_name
where 
    year(time) < year(current_date) 
    and month(time) = month(current_date) 
    and day(time) = day(current_date)

Если вы хотите, чтобы результаты по годам:

select year(time) yr, min(temp) min_temp, max(temp) max_temp
from table_name
where 
    year(time) < year(current_date) 
    and month(time) = month(current_date) 
    and day(time) = day(current_date)
group by year(time)
order by year(time)
...