尝试在同一条语句中使用SUM()
和WHERE
并获得汇总错误
我尝试了多种方法来仅选择最新条目,然后对其进行汇总,我希望能够提取数据库中的4条最新条目
@total_value bigint,
Select @total_value = SUM(TotalMB)
FROM TABLE
WHERE DATE >= getdate()-1
and (
RuleName like '%Used Memory%'
or RuleName like '%Available Mbytes%'
)
这些是表条目
2019-10-23 22:00:00.000 3958 ServerA已用内存兆字节
2019-10-23 22:00:00.000 16028 ServerA可用的兆字节
2019-10-23 22:00:00.000 15919 ServerB可用的兆字节
2019-10-23 22:00:00.000 49335 ServerB使用的内存兆字节
当我使用WHERE DATE >= MAX(DATE)
答案 0 :(得分:0)
下一条语句可能是您的问题的可能解决方案:
DECLARE @total_value bigint
SELECT @total_value = SUM(TotalMB)
FROM (
SELECT
*,
ROW_NUMBER() OVER (ORDER BY [DATE] DESC) AS Rn
FROM TABLE
WHERE
([DATE] >= DATEADD(day, -1, GETDATE())) and
(RuleName like '%Used Memory%' or RuleName like '%Available Mbytes%')
) t
WHERE t.Rn <= 4
注意:
[DATE]
列对行进行排序DATEADD()
函数将指定的数字值添加到日期值的指定日期部分。