Что если вы хотите фильтровать кол-во выводимых в Answer’е строк? Нет ничего проще – скажете вы – используйте функцию RANK.
Но как быть с таблицей среза?
Допустим, у меня есть представление, показывающее раскладку выручки по продукции в разрезе периодов. Я хочу вывести информацию лишь по 10 видам продукции с максимальным ID.
Я создаю вычисляемый столбец с функцией RANK по ID продукта, ограничиваю им выборку.
Всего одна строка таблицы среза???
Переключаюсь в режим табличного просмотра.
Увеличу фильтр.
Все верно, мне нужен не RANK, а DENSE_RANK.
Стандартно такой функции BIEE нам не предоставляет. Но мы можем получить ее за счет EVALUATE.
Попробуем сделать фильтр по новому столбцу
Немножко обманем систему.
Вот что получим при просмотре в табличном виде и в виде таблицы среза.
П.С. BI Server не «оборачивает» во внешний запрос нашу выборку если в ней нет функций сведения. Добавляя выражение RSUM(1) – RSUM(1) мы заставили его по сути сделать:
Select * from
(select DENSE_RANK() over (…) DR, … from …) subq
Where subq.DR < 10
Комментариев нет:
Отправить комментарий