ПОЛУЧИТЬ отчет с условиями «Разное где»

0

У меня есть таблица с полями

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 является уникальным в выходе. Могу ли я достичь этого в одном запросе?

заранее спасибо

Теги:
database

1 ответ

1
Лучший ответ

Условная агрегация должна работать на вас. Используйте 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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню