Мой запрос:
SELECT
UPC,
SUM(
CASE WHEN WEEK <= 13 THEN COST_AMOUNT ELSE 0 END
) /
SUM(
CASE WHEN WEEK <= 13 THEN COST_QUANTITY ELSE 0 END
)
Возвращает деление на ноль, потому что если у upc нет данных для WEEK <= 13
, то делитель будет равен нулю.
У меня есть это решение, но мне нужно создать средние значения для нескольких диапазонов дат, и оно кажется немного длинным.
SELECT
UPC,
SUM(
CASE WHEN WEEKS <= 13
THEN Cost_Amount
ELSE 0 END
) /
CASE WHEN
SUM(
CASE WHEN WEEKS<=13
THEN Cost_Quantity
ELSE 0 END
)=0
THEN 1
ELSE SUM(
CASE WHEN WEEKS<=13
THEN Cost_Quantity
ELSE 0 END
)
END