Аналитическая функция для подсчета каждого клиента с несколькими аккаунтами только один раз - PullRequest
0 голосов
/ 01 апреля 2019

У меня медленный день и по какой-то причине не знаю, как это сделать.Пожалуйста, помогите мне.У меня есть аналитическая функция для подсчета каждого клиента с несколькими учетными записями только один раз.Хочу общее количество каждого отдельного клиента.Я должен перечислить клиентов с их счетами.Множество учетных записей для каждого клиента

Я использую подобные функции.COUNT (1) OVER (раздел cust.SK_CUST_RM_ID) total_cnt1

Я ищу этот вывод

cust account  distinc_cust
 1     a           3
 1     b           3
 2     a           3
 2     b           3
 2     c           3
 3     a           3

1 Ответ

0 голосов
/ 01 апреля 2019

Я не думаю, что Netezza поддерживает count(distinct) как аналитическую функцию. Итак, вы можете использовать этот трюк:

select t.*,
       max(dr) over () as distinct_cust
from (select t.*, dense_rank() over (order by cust) as dr
      from t
     ) t;

В качестве аналитической функции вы бы просто использовали:

select t.*, count(distinct cust) over ()
from t;
...