Sql 这里有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用TOP可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,
Sql 这里有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用TOP可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,这里有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用TOP可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,不,这不是OP所指的。他想按时间首先检索前5个子ID。这样,在那些前5名中选择子ID为的所有行。在他的例子中,前5位是5,4,3,2,1,其中1有两行,Id=1和Id=2。因此,总共有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果
这里有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用
TOP
可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,不,这不是OP所指的。他想按时间首先检索前5个子ID。这样,在那些前5名中选择子ID为的所有行。在他的例子中,前5位是5,4,3,2,1
,其中1有两行,Id=1和Id=2
。因此,总共有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用TOP
可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,不,这不是OP所指的。他想按时间首先检索前5个子ID。这样,在那些前5名中选择子ID为的所有行。在他的例子中,前5位是5,4,3,2,1
,其中1有两行,Id=1和Id=2
。因此,总共有6行。
ID SubId Rate Time
1 1 10.00 '00:00:10'
2 1 11.00 '00:00:15'
3 2 12.00 '00:00:20'
4 3 13.00 '00:00:25'
5 4 14.00 '00:00:30'
6 5 15.00 '00:00:35'
7 6 16.00 '00:00:40'
ID SubId Rate Time
1 1 10.00 '00:00:10'
2 1 11.00 '00:00:15'
3 2 12.00 '00:00:20'
4 3 13.00 '00:00:25'
5 4 14.00 '00:00:30'
6 5 15.00 '00:00:35'
Select ID,SubId,Rate from Query1 where SubId In (Select Top 5 SubId from Query1)
--Time was not included in it
with x as
(select row_number() over(order by time) as rn, * from tablename)
select ID,SubId,Rate from x where rn <=5
CREATE TABLE #TopFive(Id)
INSERT INTO #TopFive
SELECT TOP 5 SubId FROM QueryId ORDER BY [Time] DESC
SELECT * FROM <tbl> WHERE subId IN(SELECT Id FROM #TopFive)
CREATE NONCLUSTERED INDEX NCI_TopFive ON #TopFive(Id)
Select ID, SubId, Rate, [Time]
INTO #results
FROM Query1
CREATE NONCLUSTERED INDEX IX_SubID ON #results(SubId) INCLUDE(Id, Rate, [Time])
SELECT A.ID, A.SubId, A.Rate, A.[Time]
FROM
#results A
JOIN
(SELECT TOP 5 SubID from #results order by [Time] desc) B
on A.SubID = B.SubID