Вот как выглядит моя таблица:
VIDEO_ID DATETIME APPROVED VIOLATION_COUNT VIDEO_DESCRIPTION
VIDEO1 2018-01-02 yes 1 a
VIDEO2 2018-06-02 no 2 b
VIDEO3 2018-07-04 yes 1 c
VIDEO4 2018-01-12 yes 1 b
VIDEO5 2018-06-02 no 2 c
VIDEO6 2018-07-29 yes 1 a
Мне нужно сгруппировать эту таблицу по VIDEO_TYPE (которую я определил с помощью VIDEO_DESCRIPTION, поэтому я использую оператор SWITCH - CASE, см. Запрос ниже),И затем для каждого VIDEO_TYPE мне нужно рассчитать 2 вещи:
- Сумма VIOLATION_COUNT и
- Сумма VIOLATION_COUNT, где APPROVED = "yes".
Поэтому я хочу, чтобы мой запрос возвратил 3 столбца: VIDEO_TYPE , общая сумма VIOLATION_COUNT и сумма VIOLATION_COUNT, где APPROVED = 'yes' для каждого из VIDEO_TYPE .
Мой вопрос заключается в том, как рассчитать сумму VIOLATION_COUNT и сумму VIOLATION_COUNT, где APPROVED = "yes" В ТО ЖЕ ВРЕМЯ ?
Вотмой запрос:
SELECT
CASE
WHEN VIDEO_DESCRIPTION = 'a' THEN 'Video type 1'
WHEN VIDEO_DESCRIPTION = 'b' THEN 'Video type 2'
WHEN VIDEO_DESCRIPTION = 'c' THEN 'Video type 3'
ELSE 'Others' END AS VIDEO_TYPE,
SUM(VIOLATION_COUNT) AS VIOLATION_COUNT,
(select count(APPROVED) where APPROVED = 'yes') AS TRUE_POSITIVE_VIOL_COUNT, -- THIS IS NOT WORKING
FROM my_table
GROUP BY
VIDEO_TYPE
Этот запрос дает мне эту ошибку:
Недопустимая операция: подзапрос использует несгруппированный столбец "my_table.approved" из внешнего запроса;