Используйте OVER..PARTITION BY с другим значением - PullRequest
0 голосов
/ 13 мая 2018

Таблица CALENDAR_ORG имеет следующий столбец и данные

BUSINESS DAY - 20150801  20150801   20150801   20150801
UNIT_CODE    - HK        IN         HK         IN
GROUP_NAME   - ANG       ANG        ANG        ANG

Я хотел бы использовать OVER..PARTION BY, чтобы выбрать максимум BUSINESS_DAY, классифицированный как UNIT_CODE

При использовании GROUP BY, это будет

SELECT MAX(BUSINESS_DAY) AS RUN_DATE FROM CALENDAR_ORG WHERE GROUP_NAME ='ANG' GROUP BY UNIT_CODE;
return:

20150801 20150801

Действительно, я получаю 4 записи 20150801, используя приведенный ниже запрос сOVER..PARTITION BY

SELECT MAX(BUSINESS_DAY) OVER (PARTITION BY UNIT_CODE) AS RUN_DATE FROM CALENDAR_ORG WHERE GROUP_NAME='ANG';

20150801 20150801 20150801 20150801

Ожидаемый результат должен составлять

20150801 20150801

1 Ответ

0 голосов
/ 13 мая 2018

Проблема решена

SELECT DISTINCT (MAX(BUSINESS_DAY) OVER (PARTITION BY UNIT_CODE)) AS RUN_DATE, UNIT_CODE FROM CALENDAR_ORG WHERE SGROUP_NAME='ANG';

...