任何人都有任何关于选择x个非连续数天的数据的见解?日期是标准的sql datetime。例如,我想选择5个最近几天的数据,但记录之间可能存在很多天差距,所以只选择5天前的记录,而不是最近的记录。
答案 0 :(得分:1)
遵循建议的方法Tony Andrews,这是一种在T-SQL中执行此操作的方法:
SELECT
Value,
ValueDate
FROM
Data
WHERE
ValueDate >=
(
SELECT
CONVERT(DATETIME, MIN(TruncatedDate))
FROM
(
SELECT DISTINCT TOP 5
CONVERT(VARCHAR, ValueDate, 102) TruncatedDate
FROM
Event
ORDER BY
TruncatedDate DESC
) d
)
ORDER BY
ValueDate DESC
答案 1 :(得分:0)
我不知道SQL Server语法,但您需要:
1)按降序选择日期(时间成分被截断)
2)挑选前5名
3)获得第5个值
4)选择datetime> = 5th value
的数据像这样的“伪SQL”:
select *
from data
where datetime >=
( select top 1 date
from
( select top 5 date from
( select truncated(datetime) as date
from data
order by truncated(datetime) desc
)
order by date
)
)
答案 2 :(得分:0)
从性能的角度来看,这应该做到并且相当不错。您没有提到如何处理关系,因此如果您需要,可以添加WITH TIES子句。
SELECT TOP (@number_to_return)
* -- Write out your columns here
FROM
dbo.MyTable
ORDER BY
MyDateColumn DESC