如何根据sql中的每个外键id获取最大主键id结果

时间:2013-10-25 13:35:08

标签: sql tsql

可以请任何人告诉我如何返回所有具有最大主键ID的行与每个外键id。

e.g。如果我有申请人和笔记表。申请人表具有ApplicantId作为主键,Notes表具有NotesId作为主键。 ApplicantId是具有一对多关系的Notes表中的外键。

这里我希望从Notes表中获取每个唯一ApplicantId的最大NotesId结果。任何人的帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT ApplicantId, MAX(NotesId)
FROM Notes
GROUP BY ApplicantId;

要获得记录的其余部分,您可以这样做:

SELECT n.*
FROM notes n
INNER JOIN (
  SELECT max(notesId) AS maxid
  FROM notes
  GROUP BY applicantId
  ) n2 ON n.NotesId = n2.maxid

sqlfiddle demo

答案 1 :(得分:0)

SELECT applicantId, max(notesId) 
from Notes
group by applicantId

答案 2 :(得分:0)

您可以使用group by或over子句,例如

select 
  applicantid,
  max(notesid) over (partition by applicantid)
from table

或者

select 
  applicantid,
  max(notesid)
from table
group by applicantid