Sql 为指定月份的每一天选择最大值

Sql 为指定月份的每一天选择最大值,sql,database,sql-server-2008,Sql,Database,Sql Server 2008,如果这个问题很傻,我很抱歉,因为我是SQL Server新手。我想为指定月份的每一天选择前5项记录。 e、 g 并将所有记录显示为一个结果。试试这个 WITH TopFiveRecords AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY dayColumn ORDER BY colName DESC) RN FROM tableName ) SELECT * FROM TopFiveRecords WHER

如果这个问题很傻,我很抱歉,因为我是SQL Server新手。我想为指定月份的每一天选择前5项记录。 e、 g

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

试试这个

WITH TopFiveRecords
AS
(
    SELECT  *,
            ROW_NUMBER() OVER (PARTITION BY dayColumn ORDER BY colName DESC) RN
    FROM tableName
)
SELECT  *
FROM TopFiveRecords
WHERE RN <= 5 
      -- AND date condition here ....
dayColumn包含月份日期的列 colName要排序的列

试试这个

WITH TopFiveRecords
AS
(
    SELECT  *,
            ROW_NUMBER() OVER (PARTITION BY dayColumn ORDER BY colName DESC) RN
    FROM tableName
)
SELECT  *
FROM TopFiveRecords
WHERE RN <= 5 
      -- AND date condition here ....
dayColumn包含月份日期的列
colName要排序的列

假设您正在检查2012年6月的超速记录,并且希望通过speed desc排名前5名


假设您正在检查2012年6月的超速记录,您希望通过speed desc排名前5名

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