| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Firebird, Interbase > select top 50 percent |
| Автор: tishaishii 7.7.2011, 10:01 | ||
Как выполнить запрос:
|
| Автор: FMA 7.7.2011, 12:06 | ||
не подойдет? |
| Автор: tishaishii 9.7.2011, 09:54 |
| В MSACCESS, по-моему, наряду с возможностью указания абсолютной мощности выборки, есть возможность указать относительную. "50 percent" - это половина. |
| Автор: Akella 9.7.2011, 20:56 | ||||
Подойдёт ли так?
По другому не знаю как :(, попробуй задай вопрос на SQL.RU Добавлено через 1 минуту и 55 секунд С входящим параметром
|
| Автор: tishaishii 14.7.2011, 22:02 |
| Есть много запросов, в них много разных связанных отношений и условий. Нет желания описывать каждый запрос в качестве блока или процедуры. Хотелось сократить код и не использовать составление запроса "на лету". |
| Автор: password 14.7.2011, 22:11 | ||
А нельзя упростить так:
|
| Автор: tishaishii 14.8.2011, 08:57 | ||||
| Не подойдёт. В задаче есть много (около 1000) разных запросов, которые часто изменяются (выгрузка информации для справочного печатного издания). Хочется как-то упростить их. Сейчас, у меня это делается с помощью парсера. Строка вида
разбивается и выполняются два запроса с ?COUNT=count(*) и ?PERCENT=0.5. Т.е.
Может быть, можно внутри SQL перед работой с курсором узнать сколько строк удастся выбрать? row_count что-то молчит. |
| Автор: rodnover 14.8.2011, 20:41 | ||||
Не знаю, на сколько будет оптимизированно, но возможно, набор данных будет вычислять один раз, если сделать через 2 SP
Завтра на работе попробую потестировать на больших данных. |
| Автор: tishaishii 14.8.2011, 22:05 | ||
| Спасибо за желание помочь, rodnover! Думаю, всё-таки, сохранение каждого (из 1000-2000) отношения в БД - это нормальная практика. Есть небольшой недостаток: при редактировании шаблона выгрузки, придётся дополнительно пересоздавать соответствующее отношение в БД. Возможно, в связи с этим, стоит подумать как описать в БД и сами шаблоны. Для ясности. Для публикации информации из БД используется простой шаблонизатор с множеством блоков (1000-2000, "по погоде") вида:
Моим вариантом решения будет для каждого запроса создавать процедуру (for ЗАПРОС into ... do suspend) с именем вида "PUB_{sha1_hex(ЗАПРОС)}". Вопрос открыт. |