首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得列的最大值行?

如何获得列的最大值行?
EN

Stack Overflow用户
提问于 2019-10-26 10:59:54
回答 1查看 448关注 0票数 0

我的桌子就像

代码语言:javascript
复制
  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  ----

我想要详细说明谁的SrNo是最大的每种产品。

就像这样:

代码语言:javascript
复制
  P_ID  |  NAME  | SRNO | Rate 
    1   |   PR1  |  3   |  80
    2   |   PR2  |  2   |  20
    3   |   PR3  |  1   |  70
    4   |   PR4  |  2   |  35

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-26 11:01:11

您可以使用关联子查询:

代码语言:javascript
复制
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()

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58570154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档