сгруппировать по 2 поля - PullRequest
       12

сгруппировать по 2 поля

0 голосов
/ 05 декабря 2018

Я не могу получить правильный синтаксис для возможности группировки по двум полям: as_of_date и ISSUERID.Спасибо!

select as_of_date, count(distinct(issuer_id)) from
crd_own.ml_corp_index_data_monthly  tb1
INNER JOIN pm_own.esg_credit_factors tb2 
ON tb1.TICKER = tb2.ISSUER_TICKER
AND trunc(tb1.DATADATE, 'month') = trunc(tb2.AS_OF_DATE, 'month')
where INDEXNAME ='IG' 
and DATADATE = '31-DEC-17'
group by as_of_date, ISSUERID
order by as_of_date asc

1 Ответ

0 голосов
/ 05 декабря 2018

У вас нет одинакового количества «неагрегирующих» столбцов в предложениях select и group by

SELECT
    as_of_date
  , COUNT( DISTINCT (issuer_id) )
...
GROUP BY
    as_of_date
  , ISSUERID     <<< this is the problem

Вам нужно либо включить ISSUERID в предложение select:

SELECT
    as_of_date
  , ISSUERID
  , COUNT( DISTINCT (issuer_id) )
...
GROUP BY
    as_of_date
  , ISSUERID
ORDER BY
    as_of_date ASC

Или полностью удалите ISSUERID.


SELECT
               -- non-aggregating columns
    as_of_date
  , ISSUERID

              -- aggregating columns
  , COUNT( DISTINCT (issuer_id) )

FROM ...
WHERE ...
GROUP BY
              -- repeat all non-aggregating columns here
    as_of_date
  , ISSUERID
...