Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SQL запрос с агрегатной функцией

6.7K
22 августа 2008 года
Kessler
42 / / 02.08.2005
Доброго всем времени суток!
Я только разбираюсь с языком SQL, поэтому возник следующий вопрос:
Есть таблица с множеством полей, одно из которых имеет тип DATE и называется PLANNED_DATE. Необходимо выбрать все различные по содержимому записи, для которых значение PLANNED_DATE максимально.
Я написал следующий запрос, который дал верный результат, но меня интересует, оптимален ли он (поскольку содержится вложенный запрос) или всё это можно сделать проще, не используя вложенности.

Мой вариант запроса следующий:
 
Код:
select distinct * from LITERATURA
where PLANNED_DATE = (select max(PLANNED_DATE) from LITERATURA)


Заранее благодарен за помощь!
2
24 августа 2008 года
squirL
5.6K / / 13.08.2003
избыточно. используйте агрегат MAX с GROUP BY
6.7K
27 августа 2008 года
Kessler
42 / / 02.08.2005
Большое спасибо! Сейчас попробую...
6.7K
27 августа 2008 года
Kessler
42 / / 02.08.2005
Хм... Не могу понять: GROUP BY ведь делит всю таблицу на группы с одинаковыми значениями указанных полей, а потом к каждой группе применяется указанное условие. А мне нужно выбрать всего ё запись с максимальным значением PLANNED_DATE (даже если подходящих полей с одинаковой датой несколько - нужно выбрать только одно из них - любое). Может, кто подскажет, как правильно построить запрос.
В таблице еще имеются поля LITERATUR_ID, COMPLETE_DATE, AUTHOR и BOOK_TYPE_ID
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог