sql - SQL Select where LINE = MAXIMUM Value per Primary Key Oracle SQL Developer
问题描述
在此示例中,如何仅选择每个用户的最高行:
输出将是 TED、PEARS 和 BILL、ORANGE
如果向比尔添加新行,将来(第 5 行)我希望使用相同的查询来拉第 5 行通信。
解决方案
如果您只想要用户和通信,请使用keep
:
select usr,
max(communication) keep(dense_rank first order by line desc) as communication
from mytable
group by usr
如果你想要整行,窗口函数更合适:
select *
from (
select t.*, row_number() over(partition by usr order by line desc) rn
from mytable t
) t
where rn = 1
旁注:user
是一个保留字,因此对于列名来说是一个糟糕的选择。我usr
在查询中使用了。
推荐阅读
- ios - Beta 测试中的应用内购买屏幕不如预期
- rust - 如何在 Rust 中为函数添加状态
- javascript - 如何从 RadAutoCompleteTextView 获取所选项目的索引?
- javascript - 如何将类添加到 div 中的当前活动 div
- javascript - Ajax 轮询似乎只停留在最后一个请求时
- javascript - 嗨,我正在尝试在我的页面上复制具有不同元素的事件侦听器,将不同的元素与不同的键配对
- javascript - 如何在 Node JS 中修复 PayPal 的“验证错误”?
- javascript - 获取keyup后输入的值
- connection - 在 omnet++ 中,根据它们的欧几里德距离重复连接节点
- dart - 颤振输入意外结束(在字符1处)