У меня есть этот образец таблицы:
Product | Category | QTY | Load Date
-----------+---------------+-------------+--------------
1 Alpha 10 Jan. 1, 2021
2 Beta 20 Jan. 1, 2021
3 Charlie 20 Jan. 1, 2021
1 Alpha 30 Jan. 2, 2021
3 Charlie 30 Jan. 3, 2021
1 Alpha -50 Jan. 4, 2021
2 Beta -20 Jan. 4, 2021
4 Delta 40 Jan. 4, 2021
Я хочу добавить столбец, который будет суммировать количество на основе предыдущей даты загрузки и группировать по продукту и категории.
Как я могу получить вывод, как показано ниже?
Product | Category | QTY | Load Date | Sum_QTY
-----------+---------------+-------------+---------------+----------
1 Alpha 10 Jan. 1, 2021 10
2 Beta 20 Jan. 1, 2021 20
3 Charlie 20 Jan. 1, 2021 20
1 Alpha 30 Jan. 2, 2021 40
3 Charlie 30 Jan. 3, 2021 50
1 Alpha -50 Jan. 4, 2021 -10
2 Beta -20 Jan. 4, 2021 0
4 Delta 40 Jan. 4, 2021 40
Ваша помощь много значит.
Спасибо
2 ответа
Если я правильно понимаю вопрос, используя СУММ в качестве аналитической функции сделает запрос достаточно прямым;
SELECT *,
SUM("QTY") OVER (PARTITION BY "Product", "Category" ORDER BY "Load Date") Sum_QTY
FROM Table1
ORDER BY "Load Date", "Product", "Category"
" "
в качестве переносимого (выходного) между СУБД и [ ]
в зависимости от SQL Server? (честный вопрос, если и есть разница, то я о ней не знаю)
Другой вариант - использовать внешнее приложение
select t.*,
s.sum_QTY
from Table1 t
outer apply ( select sum(t2.QTY) sum_QTY from Table1 t2 where t2.Category = t.Category and t2.[Load Date] <= t.[Load Date] ) s
ORDER BY [Load Date], Product, Category
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.