选择指定月份中每一天的最高值

Zeb*_*man 2 sql database sql-server-2008

如果这个问题很愚蠢,我很抱歉,因为我是 SQL Server 新手。我想为指定月份的每一天选择前 5 条记录。例如

top 5 records for day 1 in month september
top 5 records for day 2 in month september
top 5 records for day 3 in month september
.
.
top 5 records for day 31 in month september
Run Code Online (Sandbox Code Playgroud)

并将所有记录显示为一个结果。

Ric*_*iwi 5

假设您正在检查 2012 年 6 月的超速记录,并且想要查看前 5 个速度(按 speed desc)。

SELECT *
  FROM (
    SELECT *, RowNum = Row_number() over (partition by Cast(EventTime as Date)
                                          order by Speed desc)
      FROM Events
     WHERE EventTime >= '20120601'
       AND EventTime <  '20120701'
  ) X
 WHERE RowNum <= 5
Run Code Online (Sandbox Code Playgroud)