【发布时间】:2019-04-29 05:22:11
【问题描述】:
如何创建一个包含我的数据库增长率的列? 我有一个数据库并创建了另一个表(仅包含日期和计数字段),其中包含日期和记录总数。我还想插入另一列,其中包含我的增长百分比:
SELECT CONVERT(DATE, GETDATE()) AS Date, COUNT(*) AS Count
FROM [Database]
我的桌子是这样的:
Date Count Growth Rate
01/01/18 20.000,00
01/02/18 25.000,00 25,00%
01/03/18 40.000,00 60,00%
我用的是SQL Server 2005,所以不能使用滞后功能。我该怎么办?
【问题讨论】:
-
如果您查看 MSDN 页面,LAG 直到 2012 年才起作用:docs.microsoft.com/en-us/sql/t-sql/functions/…。以前的方法是使用行号并自连接到同一个表 ON rowNum = rowNum - 1
-
你能写出想要的输出吗?
-
@StepUp 我想从“计数”列的最后一行到当前行进行计算,将该数字转换为百分比并将其放入“增长率”列。如果计算是这样的:“(最后一行 - 当前行)/带有滞后函数的最后一行,它看起来像这样:100 *(count()-lag(count(),1 ) / lag (count (*), 1) || '%' 作为增长率
标签: sql sql-server sql-server-2005 lag window-functions