С точки зрения OBIEE, функция TopN позволяет OBIEE выполнить анализ TopN. Анализ Top 'N' относится к тому, чтобы получить верхние n строк из набора результатов (например, найти трех лучших сотрудников по зарплате). Когда вы добавляете TOPN в качестве столбца формулы в ответ, данные автоматически фильтруются. Вам не нужно добавлять какой-либо специальный фильтр TOPN.
выражение выглядит следующим образом:
TOPN (n_expression, n)
где:
- n_expression это любое выражение, которое вычисляется в виде числового значения.
- n - это N из TopN, которое является любым положительным целым числом. Он представляет верхнее число ранжировок, отображаемых в результирующем наборе, 1 - самый высокий ранг.
В качестве примечания, запрос может содержать только одно выражение TOPN.
Ниже приведен скриншот формулы вошел, и физический SQL выдается в базу данных из OBIEE для формулы:
SELECT DISTINCT D1.c1 AS c1, D1.c2 AS c2, D1.c3 AS c3 FROM (SELECT DISTINCT 0 AS c1, D1.c1 AS c2, CASE WHEN CASE WHEN D1.c2 IS NOT NULL THEN RANK() OVER (ORDER BY D1.c2 DESC NULLS LAST) END <= 8 THEN CASE WHEN D1.c2 IS NOT NULL THEN RANK() OVER (ORDER BY D1.c2 DESC NULLS LAST) END END AS c3 FROM ( SELECT SUM (T428861.POUND_AMT) AS c1, T428861.PURCH_ORDER_NUM AS c2 FROM WC_ASN_SHIP_F T428861 WHERE (T428861.FINAL_SAMPLE_FLG = 'Y' AND T428861.DELETE_FLG = 'N') GROUP BY T428861.PURCH_ORDER_NUM) D1) D1 WHERE (D1.c3 <= 8) ORDER BY c1
http://gerardnico.com/wiki/dat/obiee/topn
Я не думаю, что функция TOPN OBIEE совпадает с TOP() в SQL! – QAIS
@ mark-p Является ли запрос OBI генерируется против SQLServer? Ваш ответ показывает, как функция TOP работает на SQLServer, но не указывает, является ли это функция, которую вызывает OBI. – jackohug
Исправлено с примером физического SQL из OBIEE –