繁体   English   中英

如何使用 MAX - N 执行 MAX SQL 语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM