У меня есть ситуация, когда у меня есть запрос с подзапросом, который использует SUM() OVER
.Хотя подзапрос работает нормально сам по себе, при использовании в контексте внешнего запроса агрегирование не применяется.
Я сделал этот тестовый пример, чтобы приблизиться к тому, что я пытаюсь сделать:
CREATE TEMPORARY TABLE TestNumbers
(id INTEGER PRIMARY KEY, number INTEGER);
INSERT INTO TestNumbers (number)
VALUES (10), (15), (20), (25), (30);
SELECT SUM(number) OVER (ORDER BY id) FROM TestNumbers;
Возвращает ожидаемый результат ... скользящую сумму всех значений.10
, 25
, 45
, 70
, 100
.
Однако, если я использую это как подзапрос ...
SELECT (
SELECT SUM(number) OVER (ORDER BY id)
) FROM TestNumbers;
Iполучить результат при не примененной агрегации.10
, 15
, 20
, 25
, 30
.
Как использовать это агрегирование с OVER
в подзапросе?