我的桌子就像
to the
我想详细说明每个产品的SrNo是Maximum。
像这样:
P_ID | NAME | SRNO | Rate
1 | PR1 | 1 | 50
1 | PR1 | 2 | 60
1 | PR1 | 3 | 80 ----
2 | PR2 | 1 | 10
2 | PR2 | 2 | 20 ----
3 | PR3 | 1 | 70 ----
4 | PR4 | 1 | 25
4 | PR4 | 2 | 35 ----
我该怎么做?
答案 0 :(得分:1)
您可以使用相关子查询:
select t.*
from mytable t
where t.srno = (select max(srno) from mytable t1 where t1.p_id = t.p_id)
使用(p_id, srno)
上的索引,这应该是一个有效的解决方案。
另一个常见的解决方案是使用row_number()
:
select pid, name, srno, rate
from (
select t.*, row_number() over(partition by p_id order by srno desc) rn
from mytable t
) t
where rn = 1