Sql server 尝试在where语句中选择记录(最长日期)
尝试在同一语句中使用sum和WHERE并获取聚合错误 我尝试了多种方法,只选择最近的条目,然后对它们进行汇总。我希望能够提取数据库中的4个最新条目Sql server 尝试在where语句中选择记录(最长日期),sql-server,Sql Server,尝试在同一语句中使用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 '%Avai
@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服务器A已用内存MB
2019-10-23 22:00:00.000 16028服务器A可用兆字节
2019-10-23 22:00:00.000 15919服务器B可用MB
2019-10-23 22:00:00.000 49335服务器B已用内存MB
当我使用WHERE DATE>=MAXDATE时,我希望能够获取这4个条目。可能下一个语句是您问题的可能解决方案:
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函数将指定的数字值添加到日期值的指定日期部分。
再次感谢你的帮助,Zhorov。我将尽我所能学习并分享这些信息,以帮助他人