sql - 尝试计算列上的运行总计后,行附近的语法不正确
问题描述
我在 SERVER 2008 但使用 SSMS 2016
我试图在一张桌子上得到一个运行总数,我试图使用 OVER() 关键字,但它不起作用。输出应如下所示:
Date | Description | PRICE | Running Total |
-----------|----------------|-------|---------------|
01/01/2018 | Apple | 2 | 2 |
02/01/2018 | Apple | 2 | 4 |
03/01/2018 | Apple | 0 | 4 |
04/01/2018 | Apple | 0 | 4 |
05/01/2018 | Apple | 3 | 7 |
06/01/2018 | Apple | 3 | 10 |
07/01/2018 | Apple | 3 | 13 |
我的代码如下
WITH TOTAL AS
(
SELECT
DATE,
[Description],
[PRICE]
FROM PRODUCTS
)
SELECT
DATE,
[Description],
[PRICE],
SUM([PRICE]) OVER(ORDER BY DATE ROWS UNBOUNDED PRECEDING) AS RUNNINGTOTAL
FROM TOTAL
无法让它工作,在行错误附近不断出现不正确的语法。我哪里错了?
解决方案
我认为您不需要使用CTE
or ROWS UNBOUNDED PRECEDING
:
SELECT [DATE], [Description], [PRICE],
SUM([PRICE]) OVER (ORDER BY [DATE]) AS RUNNINGTOTAL
FROM PRODUCTS;
推荐阅读
- authentication - 使用 gcloud auth 的用户凭据更持久?防止过期?
- python - 如何用角度计算长度
- java - 如何确定 Jenkins 使用什么来运行并将其指向正确的位置 (JAVA 11)
- matlab - Matlab底图或映射层显示国际日期变更线?
- oracle - ORACLE - 如何从一列中显示 3 个不同的值
- mfc - CMainFrame 的缓慢/延迟移动
- javascript - 未为用户定义的 musickit js 专辑
- azure - 同步现有帐户时,是否可以防止 UPN 的域更改为 onmicrosoft.com?
- android - Android Studio 缺少 MAC ERROR 的必要插件 org.jetbrains.android
- javascript - 在 JavaScript 中获取上一个日期