Функция управления окнами
Предположим, этот запрос,
SELECT
SUM (Quantity) OVER (Partition By Symbol ORDER BY PositionID ASC ROWS UNBOUNDED PRECEDING) as RemainedQty
Можно ли определить условия в оконной функции? В этом примере мне нужно получить SUM (количество) при разных обстоятельствах в каждой строке. Что-то (гипотетически) вроде:
SELECT
SUM (Quantity) OVER (Partition By ...) Where SomeColumn='X' as RemainedQty_X,
SUM (Quantity) OVER (Partition By ...) Where SomeColumn='Y' as RemainedQty_Y ...
1 ответ
Решение
Да, это возможно.
Выберите SUM (случай, когда SomeColumn='X', затем количество, иначе 0 end) в качестве суммы, SUM (случай, когда SomeColumn='y', тогда количество, иначе 0 end), как сумма из таблицы.