【问题标题】:I want use LAG function for running total in another column, but it does not work in SQL Server 2012我想使用 LAG 函数在另一列中运行总计,但它在 SQL Server 2012 中不起作用
【发布时间】:2018-10-20 12:56:22
【问题描述】:

我想使用LAG 函数来确定另一列中的运行总计,但它在 SQL Server 2012 中不起作用。

【问题讨论】:

  • 错误在这里告诉你问题。如果你想要珍贵行的累计是ROWS BETWEEN语法。
  • 我想使用 Ruuning_Total 和 Lag 函数
  • 使用CTE 或派生表
  • 给我一个更好理解的例子
  • 数据图片通常在堆栈溢出时接收不佳,因为我们无法与之交互,但是,代码图片永远不会得到很好的接收。如果您要发布问题,请不要发布它的图片。代码为文本,应发布为text。

标签: c# asp.net .net sql-server


【解决方案1】:

回答声明“我想使用带有滞后函数的 Ruuning_Total”:你不能,错误正是告诉你这一点。我假设你想要这样的东西:

CREATE TABLE SomeTable (ID int IDENTITY(1,1),
                        SomeNumber int);
INSERT INTO SomeTable
VALUES (1),(17),(37),(24),(67),(265);

SELECT ID,
       SomeNumber,
       SUM(SomeNumber) OVER (ORDER BY ID) AS RunningTotal,
       SUM(SomeNumber) OVER (ORDER BY ID
                             ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS RunningTotalMinus1
FROM SomeTable;

DROP TABLE SomeTable;

【讨论】:

  • 这对我很有帮助,但是如何将默认值设置为零来代替 NULL.. 在这个查询中 SUM(SomeNumber) OVER (ORDER BY ID ROWS BETWEEN UNBounded PreRECEDING AND 1 PRECEDING) AS RunningTotalMinus1
  • 使用ISNULL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多