【问题标题】:Getting the 5 most recent dates in SQL在 SQL 中获取 5 个最近的日期
【发布时间】:2022-11-22 05:14:55
【问题描述】:

我正在尝试获取我正在处理的查询的 5 个最近日期。基本上是第一、第二、第三、第四和第五大日期。到目前为止,查询只是按最大日期分组。这是我到目前为止的代码:

SELECT
    Customer,
    Plant,
    ForecastDate
FROM
    (
        SELECT
            *,
            ROW_NUMBER() OVER( PARTITION BY Customer, Plant ORDER BY ForecastDate DESC ) AS ROW_NUM 
        FROM
            table
    ) AS T
WHERE
    ROW_NUM = 1

这是上面查询代码的输出:

这是在 Microsoft sql server management studio 18

【问题讨论】:

  • 最大日期是什么意思?
  • 所以只需将该查询包装在SELECT TOP 5 ForecastDate FROM $query ORDER BY ForecastDate DESC;

标签: sql group-by max ssms


【解决方案1】:

您先对结果集进行排序,然后取最高的 5 个

SELECT TOP 5 Customer, Plant, ForecastDate FROM (
SELECT *, ROW_NUMBER()OVER(PARTITION BY Customer, Plant ORDER BY ForecastDate DESC) as ROW_NUM 
FROM table
) AS T
WHERE ROW_NUM = 1
ORDER BY ForecastDate DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多