У меня есть таблица с полями
TPI
CLICKS
IMPRESSION
CLASSIFY
Мне нужно получить 3 результата
1st) SUM(CLICKS)/SUM(IMPRESSION) * 100 GROUP BY TPI
2nd) SUM(IMPRESSION) WHERE CLASSIFY = "XYZ" GROUP BY TPI
3rd) SUM(IMPRESSION) WHERE CLASSIFY = "ABC" GROUP BY TPI
Желаемый ОП
TPI 1st_data 2nd_data 3rd_data
WHERE TPI является уникальным в выходе. Могу ли я достичь этого в одном запросе?
заранее спасибо
Условная агрегация должна работать на вас. Используйте CASE
в sum()
аргумент использовать только значение impression
, когда ваше состояние на classify
выполнено.
SELECT tpi,
sum(clicks) / sum(impression) * 100 1st_data,
sum(CASE classify
WHEN 'XYZ'
THEN impression
ELSE
0
END) 2nd_data,
sum(CASE classify
WHEN 'ABC'
THEN impression
ELSE
0
END) 3rd_data
FROM elbat
GROUP BY tpi;