![]() |
|
Модераторы: skyboy |
![]()
|
|
| kichSman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.2.2009 Репутация: нет Всего: нет |
Помогите составить запрос, чтобы можно было достать пять строк таблицы, у которых наибольшее значение одного столбца. Смотрел мануал, наперся на пример, который не очень удовлетворяет моей необходимости, так как получение этих строк реализуют через сортировку базы, а хотелось бы по вложенным запросам
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kichSman |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.2.2009 Репутация: нет Всего: нет |
яж грю, что нужно без сортировки |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ну кто мешает?
Первый запрос (на основе таблицы) выбирает max... Второй запрос (на основе таблицы и первого запроса) выбирает max из оставшихся... Третий запрос (на основе таблицы и первых двух запросов) выбирает очередной max... ... Итого 5 запросов. А потом всем им UNION. Вот только писАть этого урода пусть тебе кто-нить другой помогает... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kichSman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.2.2009 Репутация: нет Всего: нет |
Мля, улыбнулу!!! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Не, а что ты хочешь? почему вместо использование совершенно стандартного метода нужно чесать правое ухо левой пяткой? я уж не говорю о том, что если целевое поле индексировано, то никакой сортировки вообще не будет... а если не индексировано - то сортироваться будет всё-таки таблица, а не база... и опять же по-любому - нравится тебе это или нет - max без сортировки либо обработки индекса ну никак не бывает. Просто необходимость сортировки от тебя в этом случае несколько спрятана.
PS. А это часом не домашнее задание? уж больно постановка задачи идиотская... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
-------------------- Слава Україні! |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
И кто поручится за то что будут возвращены не более пяти записей? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
To Zloxa
-------------------- Слава Україні! |
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Еще одна попытка управлять автомобилем не используя руля. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
To Zloxa
С замечанием в целом согласен, но при существующей постановке задачи, я думаю на приведенном Вами наборе тестовых значений нет способа вернуть 5 строк. Для того что бы "развязывать" варианты с одинаковыми значениями необходимо выбрать одну из стратегий, либо нам нужны, так сказать, пять наибольших вариантов (тогда используем DISTINCT) или же необходимо использовать дополнительное поле для уточнения критерия выбора, например "дата занесения в таблицу" и тогда формулировка будет такая: "Определить 5 самых больших значений поля а, для одинаковых значений выводить в первую очередь те которые были занесены раньше". Способ приведеный мною выше может быть с лёгкостью
-------------------- Слава Україні! |
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
ИМХО ты бежишь впереди паровоза. Топикстартер не соизволил объяснить, чем его пугает прямой путь (необходимость сортировки), а ты через хрустальный шар во всю гадаешь, стратегии обхода измышляешь. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| kichSman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.2.2009 Репутация: нет Всего: нет |
Слежу за ходом логики. А необходимость банальная - экономия оперативы |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |