Функция управления окнами

Предположим, этот запрос,

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), как сумма из таблицы.

Другие вопросы по тегам