Sql 仅获取最新(总体)加载的行
这是我的桌子:Sql 仅获取最新(总体)加载的行,sql,sql-server,sql-server-2008,group-by,max,Sql,Sql Server,Sql Server 2008,Group By,Max,这是我的桌子: EmpID | Rating | LoadID ----------------------- 1 5 100 1 7 101 1 8 102 2 6 100 2 6 101 3 4 102 我只需要为最新(全部)LoadID选择行。基于上述情况,最新(总体)的加载ID为102,因此我需要有以下结果集
EmpID | Rating | LoadID
-----------------------
1 5 100
1 7 101
1 8 102
2 6 100
2 6 101
3 4 102
我只需要为最新(全部)LoadID
选择行。基于上述情况,最新(总体)的加载ID为102,因此我需要有以下结果集:
EmpID | Rating | LoadID
-----------------------
1 8 102
3 4 102
您可以声明变量或使用嵌套查询: 以下内容未经测试,可能存在语法错误:
SELECT
t.[EmpId]
,t.[Rating]
,t.[LoadID]
FROM
yourTable t
WHERE
LoadId = (
SELECT
TOP 1 t.[LoadID]
FROM
yourTable t
ORDER BY t.[LoadID] DESC
)
您可以声明变量或使用嵌套查询: 以下内容未经测试,可能存在语法错误:
SELECT
t.[EmpId]
,t.[Rating]
,t.[LoadID]
FROM
yourTable t
WHERE
LoadId = (
SELECT
TOP 1 t.[LoadID]
FROM
yourTable t
ORDER BY t.[LoadID] DESC
)
下面是一个使用CTE的示例:
with RankCTE as
(
select
EmpID
, Rating
, LoadID
, Rank() over (order by LoadID desc) as R
from TABLE
)
select
EmpID
, Rating
, LoadID
from RankCTE
where R = 1
下面是一个使用CTE的示例:
with RankCTE as
(
select
EmpID
, Rating
, LoadID
, Rank() over (order by LoadID desc) as R
from TABLE
)
select
EmpID
, Rating
, LoadID
from RankCTE
where R = 1
你可以这样做
declare @T table (EmpID int, Rating int, LoadID int)
insert into @T values
( 1, 5, 100),
( 1, 7, 101),
( 1, 8, 102),
( 2, 6, 100),
( 2, 6, 101),
( 3, 4, 102)
select T.*
from @T as T
where
LoadID in (select max(LoadID)
from @T)
你可以这样做
declare @T table (EmpID int, Rating int, LoadID int)
insert into @T values
( 1, 5, 100),
( 1, 7, 101),
( 1, 8, 102),
( 2, 6, 100),
( 2, 6, 101),
( 3, 4, 102)
select T.*
from @T as T
where
LoadID in (select max(LoadID)
from @T)
这里使用CTE进行同样的操作
;WITH TblCTE as(
SELECT [EmpId],[Rating],[LoadID],RANK() over (order by [LoadID] DESC) r
FROM yourTable)
SELECT * FROM TblCTE WHERE r=1
这里使用CTE进行同样的操作
;WITH TblCTE as(
SELECT [EmpId],[Rating],[LoadID],RANK() over (order by [LoadID] DESC) r
FROM yourTable)
SELECT * FROM TblCTE WHERE r=1
这有点冗长,子查询可能会使它有点慢。我建议使用CTE。你是对的,嵌套查询肯定不优雅。这就是实体框架对大脑SQL区域的作用。请原谅我的无知。。。如何使用CTE进行此操作?尽管@FarligOpptreden的建议值得赞誉。哈哈!谢谢你,先生P@tonson7检查我的答案,用一个cteth实现这个,它有点冗长,子查询可能会使它有点慢。我建议使用CTE。你是对的,嵌套查询肯定不优雅。这就是实体框架对大脑SQL区域的作用。请原谅我的无知。。。如何使用CTE进行此操作?尽管@FarligOpptreden的建议值得赞誉。哈哈!谢谢你,先生P@tonson7检查我的答案,以便使用CTE实现此功能