我需要包含所有行的最大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
答案 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