Учитывая данные, которые вы опубликовали до сих пор, звучит так, как будто вы можете перефразировать ваш вопрос, просто задав счет для числа различных групп 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
Этот запрос должен дать именно ту таблицу результатов, которую вы разместили.