У меня есть запрос ниже, который возвращает результаты, но мне нужно, чтобы некоторые переменные были исключены из столбца fill_orders.
Весь запрос:
SELECT
order_date,
p_category,
issue_group,
srt_level,
order_count,
filled_orders,
total_orders,
round(100 *(order_count / total_orders), 1) AS monthly_metric
FROM
(
SELECT
order_date,
p_category,
issue_group,
srt_level,
order_count,
CASE
WHEN srt_level = '80' THEN order_count
WHEN srt_level = '100' THEN SUM(order_count) OVER(
PARTITION BY order_date, issue_group, p_category
)
END AS filled_orders,
total_orders
FROM
(
SELECT
order_date,
p_category,
issue_group,
srt_level,
order_count,
SUM(order_count) OVER(
PARTITION BY order_date, issue_group, p_category
) AS total_orders
FROM
(
SELECT
order_date,
p_category,
CASE
WHEN ( issue_grp = 1 ) THEN '1'
ELSE '2/3 '
END AS issue_group,
srt AS srt_level,
COUNT(*) AS order_count
FROM
database.tcon_mv
WHERE
order_date IN (
'201803'
)
GROUP BY
p_category,
CASE
WHEN ( issue_grp = 1 ) THEN '1'
ELSE '2/3 '
END,
srt,
order_date
)
)
)
ORDER BY
order_date,
p_category,
issue_group
Часть, дающая мне«Issues»:
... SELECT
order_date,
p_category,
issue_group,
srt_level,
order_count,
CASE
WHEN srt_level = '80' THEN order_count
WHEN srt_level = '100' THEN SUM(order_count) OVER(
PARTITION BY order_date, issue_group, p_category
)
END AS filled_orders,
total_orders
FROM ....
srt_level - это столбец varchar, который имеет только 3 параметра в качестве результатов (80, 100 и Поздний).Когда srt_level = '100', мне нужно, чтобы счетчик включал только сумму строк в 80 и 100.
Вид того, что возвращается полным запросом, с ожидаемыми результатами, написанными красным.