![]() |
|
Модераторы: LSD |
![]()
|
|
| Juggle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Помогите ограничить выборку строк.
Есть запрос: SELECT table_name, COUNT(*) FROM all_indexes WHERE table_source = 2 GROUP BY table_name HAVING COUNT(*) = 2; Мне надо чтобы выводились только любые найденные 10 строк. Были попытки ограничить при помощи rownum, но пока что неудачно. Может есть другие способы сделать это? |
|||
|
||||
| cra6 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 10.12.2007 Репутация: 2 Всего: 2 |
select * from(
SELECT table_name, COUNT(*) FROM all_indexes WHERE table_source = 2 GROUP BY table_name HAVING COUNT(*) = 2) where rownum < 10 |
|||
|
||||
| Juggle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Так конечно сработает, но ограничение срок задумывалось как ускорение отработки скрипта. В предложенном варианте мой скрипт будет отрабатываться по всем строкам - а этого очень хочется избежать.
Может есть еще варианты? |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
В случае группировки ограничение количества строк не приведет к желаемому, по вполне понятным причинам. Чтобы собрать одну группу, всяко надо просканировать всю таблицу. если есть мастер таблица и индекс в детейле, можно попробовать забрать скаляром
/*но на вьюхах словарей профит этого подхода будет обнаружен врядли*/ Можно посмотреть в сторону аггрегирующего материалзиованного представления с фаст рефрешем по коммиту и квери-ревритом. Однако этот подход тоже нельзя продемонстриовать на словарных вьюхах Это сообщение отредактировал(а) Zloxa - 27.5.2011, 14:39 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Juggle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
>>Чтобы собрать одну группу, всяко надо просканировать всю таблицу.
А может как-то можно ограничить это сканирование скажем так первой 1000 строк? >>если есть мастер таблица и индекс в детейле, можно попробовать забрать скаляром Вариант наверное хороший, но не понятный для меня. |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
запросто, тогда в результате будут цены на дрова
Могу попытаться понять за Вас Это сообщение отредактировал(а) Zloxa - 27.5.2011, 16:44 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| Juggle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |