gpt4 book ai didi

sql - 获得每个组的最高结果(在 Oracle 中)

转载 作者:行者123 更新时间:2023-12-04 00:00:20 25 4
gpt4 key购买 nike

我如何能够在多个组中获得 N 个结果
一个 oracle 查询。

例如,给定下表:

|--------+------------+------------|
| emp_id | name | occupation |
|--------+------------+------------|
| 1 | John Smith | Accountant |
| 2 | Jane Doe | Engineer |
| 3 | Jack Black | Funnyman |
|--------+------------+------------|

有更多的行有更多的职业。我想得到
每个职业的三名员工(比方说)。

有没有办法在不使用子查询的情况下做到这一点?

最佳答案

我现在手头没有一个 oracle 实例,所以我没有测试过这个:

select *
from (select emp_id, name, occupation,
rank() over ( partition by occupation order by emp_id) rank
from employee)
where rank <= 3

这是关于排名如何运作的链接: http://www.psoug.org/reference/rank.html

关于sql - 获得每个组的最高结果(在 Oracle 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com