[英]How to do a MAX SQL statement with MAX - N
我正在寻找一些 SQL 帮助,因为我对它有点陌生。 我有 80% 的等式,但缺少最后二十个。
我正在尝试使用 N 变量执行MAX
语句。 我每周都会向服务器加载一个文件,并且该文件具有“etl 日期”。 我想说“根据日期显示最近的 3 个文件”。 我想出了如何在这个论坛上获得最近的两个
SELECT COUNT (ref_date)
FROM [STORAGE_DW].[dbo].[SRM_VirtualMachines]
WHERE ref_date = (SELECT MAX(ref_date)
FROM [STORAGE_DW].[dbo].[SRM_VirtualMachines])
SELECT COUNT (ref_date)
FROM [STORAGE_DW].[dbo].[SRM_VirtualMachines]
WHERE ref_date = (SELECT MAX(ref_date)
FROM [STORAGE_DW].[dbo].[SRM_VirtualMachines]
WHERE Ref_Date < (SELECT MAX(ref_date)
FROM STORAGE_DW.dbo.SRM_VirtualMachines))
我不确定以上是否有效,但它有效。 我基本上想说给我看最近的文件日期 (MAX),然后是两个以前的 MAX-2。
日期格式如下:
2017-01-30 07:03:00.000
通过查看您的问题,我假设您正在使用 SQL Server。 您可以使用 RANK 分析函数从表中获取所有最新三个参考日期的计数。 检查解决方案如下。
SELECT COUNT( Z.ref_date )
FROM
(
SELECT *,
RANK() OVER( ORDER BY ref_date DESC ) AS rnk
FROM [STORAGE_DW].[dbo].[SRM_VirtualMachines]
) Z
WHERE Z.rnk <=3;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.