如何获取具有最大id的数据

时间:2013-11-04 13:27:57

标签: sql oracle

我需要包含所有行的最大instrn_id的数据,max我不能使用,因为t只返回一行:

instrn_id ordr_id

599999  1659
599999  1659
599999  1659
599998  1633
599998  1633
599998  1633
599660  1659
599659  1633
599321  1659
599321  1659
599321  1659
599320  1633
599320  1633
599320  1633
598979  1659
598978  1633
598638  1659
598638  1659
598638  1659
598637  1633
598637  1633

3 个答案:

答案 0 :(得分:4)

可能是这样的:

SELECT *
FROM _yourtable_
WHERE instr_id = (SELECT MAX(instr_id) from _yourtable_)

答案 1 :(得分:0)

SELECT *
FROM 
_yourtable_ t1
JOIN
(SELECT MAX(instr_id) m FROM _yourtable_) t2
ON t1.instr_id  = m

答案 2 :(得分:0)

这可以在mssql中使用。我认为oracle具有相同的语法:

;with x as
(
select *, rank() over (order by ordr_id desc) rnk 
from <table>
) 
select instrn_id, ordr_id
from x
where rnk = 1