2016-09-25 3 views
1

У меня есть база данных для хранения температур. Есть три-пять температур в час, и я хочу получить первую и последнюю температуру в час, но я не могу создать подходящий подзапрос.Получить первую и последнюю запись часа с MySQL

Вот основной вопрос, чтобы получить температуру в час.

SELECT HOUR(time) AS h, max(temp_in) as max, min(temp_in) as min, count(temp_in) as count 
FROM tbl_temps 
GROUP BY h; 

enter image description here

+0

Есть ли у вас стоит много дней измерений в этой таблице? Что вы хотите делать с часами разных дней? –

+0

Я получаю один раз только один день. Это не в этом примере и сейчас не требуется. –

ответ

2

Вы можете использовать соединение и подзапрос

select * from 
my_table where (HOUR(time),MINUTE(time)) in (
     select HOUR(time), min(MINUTE(time)) 
     from my_table 
     group by HOUR(time) 
) 
union 
select * from 
my_table where (HOUR(time),MINUTE(time)) in (
     select HOUR(time), max(MINUTE(time)) 
     from my_table 
     group by HOUR(time) 
) 
order by HOUR(time), MINUTE(time) 
+0

Нет ли чего-то, он сказал, что в строке 4 есть ошибка? –

+0

Неверный токен sequnce .. у меня есть обновленный ответ – scaisEdge

+0

Спасибо. Работает. –

Смежные вопросы