【问题标题】:Get Top 3 Records By Date By Day SQL Server 2012按日期按日期获取前 3 条记录 SQL Server 2012
【发布时间】:2020-12-16 17:07:14
【问题描述】:

我的表格中的行如下所示:

DateTime, Field1, Field2, Field3

我想按日期、按天获取 TOP 3 记录。对于一条记录,我会执行

SELECT TOP(3) * 
FROM tum 

我每天都需要它。我假设我会使用分区或交叉应用,但我并不清楚这方面的实际语法。

【问题讨论】:

  • TOP 没有ORDER BY 是没有意义的。

标签: sql sql-server partition


【解决方案1】:

你会使用row_number():

select t.*
from (select t.*,
             row_number() over (partition convert(date, datetime) order by ?) as seqnum
      from t
     ) t
where seqnum <= 3;

【讨论】:

  • 这种语法似乎不正确。 row_number 接受 0 个参数。
  • @JeremyReynolds 。 . .嗯?没有论据。
  • @JeremyReynolds 你应该可以接受这个吗?
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 2013-10-03
  • 2019-03-21
  • 2021-04-03
相关资源
最近更新 更多