Суммируйте, когда поле равно нулю - PullRequest
0 голосов
/ 22 января 2019

У меня вопрос по Oracle SQL. У меня есть 3 поля для расчета.

enter image description here

Текущий код :

CASE
WHEN SUM(marketingid) = 0 THEN nvl(COUNT(DISTINCT sessionid),0)
ELSE nvl(COUNT(DISTINCT marketingid),0)
END AS count

Но это не кажется правильным. Пожалуйста, помогите. Спасибо!

1 Ответ

0 голосов
/ 23 января 2019

Учитывая данные, которые вы опубликовали до сих пор, звучит так, как будто вы можете перефразировать ваш вопрос, просто задав счет для числа различных групп id, marketingid и sessionid в your_table:

SELECT id, COUNT(*) AS count,
       CASE WHEN MAX(marketingid)=0 AND MIN(marketingid)=0
            THEN 'count(distinct sessionid)'
            ELSE 'count(distinct marketingid)' END AS methodology 
  FROM your_table
 GROUP BY id, marketingid, sessionid

Этот запрос должен дать именно ту таблицу результатов, которую вы разместили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...