C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Исправить запрос  (Прочитано 1481 раз)
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Исправить запрос
« : 09 Сентябрь 2015, 12:11:57 »

На картинке содержимое таблицы sensdatas. Там есть 4 штуки id (3, 9999999, 77, 78)
У меня есть запрос:
Код
SELECT 
 indicators.ip,
 sensdatas.id,  
 sensdatas.temperature,
 sensdatas.pressure,
 sensdatas.humidity,
 sensdatas.sernum,
 sensdatas.curenttime,
 sensdatas.et,
 sensdatas.ep,
 sensdatas.eh,
 sensdatas.iroom
 FROM indicators, sensdatas
 WHERE sensdatas.curenttime = (SELECT MAX(sensdatas.curenttime) FROM sensdatas)
 ORDER BY sensdatas.id;
 

Этот запрос возвращает две последние записи для id 77 и 78
Мне бы хотелось чтобы в выборку попали и две записи с id 99999999 и 3 с их максимальным временем т.е я хочу получить 4 записи (всего в таблице 4 id) и у каждой должно быть максимальное время.
Как подправить запрос?
Спасибо.
Записан
OVE
Участник


Сказали спасибо: +67/-0
Offline

Сообщений: 72


Re: Исправить запрос
« Ответ #1 : 09 Сентябрь 2015, 14:24:48 »

Попробуйте так
Код:
SELECT
  a.id, 
  a.temperature,
  a.pressure,
  a.humidity,
  a.sernum,
  a.curenttime,
  a.et,
  a.ep,
  a.eh,
  a.iroom
  FROM sensdatas as a
  WHERE a.curenttime = (SELECT MAX(b.curenttime) FROM sensdatas as b where b.id=a.id)
  ORDER BY a.id;
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: Исправить запрос
« Ответ #2 : 09 Сентябрь 2015, 15:11:23 »

Большое спасибо, работает!  

P.S.
Есть ли смысл добавить индекс и по какой колонке для возможного ускорения запроса?
Сейчас 252 ms.
Записан
OVE
Участник


Сказали спасибо: +67/-0
Offline

Сообщений: 72


Re: Исправить запрос
« Ответ #3 : 09 Сентябрь 2015, 15:44:31 »

Тут нужно понять насколько часто будет выполняться этот запрос. При добавлении индексов упадет скорость добавления новых записей в таблицу. Можно добавить индекс по currenttime и посмотреть результат.
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


« Ответ #4 : 09 Сентябрь 2015, 16:00:49 »

Спасибо, попробую.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.058 секунд. Запросов: 19.