Sql 如何在我的查询中插入select top 1?

Sql 如何在我的查询中插入select top 1?,sql,database,inner-join,greatest-n-per-group,Sql,Database,Inner Join,Greatest N Per Group,我有一个表候选人。每个候选人都有一名经理。每个候选人的状态从1到11,存储在表candidateStatuseSlog中。我需要了解的是,每一位经理在每一种状态下拥有多少权力。下面的查询为每个候选人重新运行从1到11的所有状态,但我只需要得到最后一个 SELECT COUNT(c.candidateId) as resumesCount, csl.[statusId], s.[managerINN] FROM sm.Candidates c INNER JOIN sm.CandidateVaca

我有一个表
候选人
。每个候选人都有一名经理。每个候选人的状态从1到11,存储在表
candidateStatuseSlog
中。我需要了解的是,每一位经理在每一种状态下拥有多少权力。下面的查询为每个候选人重新运行从1到11的所有状态,但我只需要得到最后一个

SELECT COUNT(c.candidateId) as resumesCount,
csl.[statusId],
s.[managerINN]
FROM sm.Candidates c
INNER JOIN sm.CandidateVacancies cv on c.[candidateId] = cv.[candidateId]
INNER JOIN sm.Staff s on s.[staffId] = cv.[vacancyId]
INNER JOIN sm.CandidatesStatusesLog csl on c.[candidateId] = csl.[candidateId]
GROUP BY csl.[statusId], s.[managerINN]

我需要以某种方式使用下面的查询,但我不知道如何使用:

select top 1 * from sm.CandidatesStatusesLog
order by logStatusId  desc
candidateStatuseSlog
。对于候选者58,我只需要得到值7,而不是5和7


一个简单的选项使用
行号()


您使用的是哪种数据库管理系统?
SELECT COUNT(*) as resumesCount, csl.[statusId], s.[managerINN] 
FROM sm.Candidates c
INNER JOIN sm.CandidateVacancies cv on c.[candidateId] = cv.[candidateId]
INNER JOIN sm.Staff s on s.[staffId] = cv.[vacancyId]
INNER JOIN (
    SELECT csl.*, ROW_NUMBER() OVER(PARTITION BY [candidateId] ORDER BY logStatusId DESC) as rn
    FROM sm.CandidatesStatusesLog csl
) csl on c.[candidateId] = csl.[candidateId]
WHERE cs1.rn = 1
GROUP BY csl.[statusId], s.[managerINN]