Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 这里有6行。为什么不使用查询两次呢。请查看注释部分,它说要生成结果已经花费了太多时间是的,对不起。为什么不将该查询的结果插入一个临时表,然后使用该临时表呢。在这里使用TOP可能是最快的方法。@FelixPamittan你能给我一个答案吗。@SouravA,_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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