oracle - oracle中的行号
解决方案
应该是一个简单的MAX
函数。
select max(row_number) rn,
account_no
from your_table
group by account_no
order by account_no;
如果“row_number”表示分析函数的结果(从您到目前为止发布的内容中不清楚),则按降序将子句ORDER BY
包含到函数中(我不知道您在哪一列上对数据进行排序),以便你的“最大值”实际上变成了“最小值”,然后很容易选择它作为最终结果。RN = 1
with temp as
(select columnb,
columnc,
row_number() over (partition by accountno order by SOMETHING desc) rn
^^^^^^^^^^^^^^^^^^^^^^^
add this
from some_table
)
select columnb,
columnc
from temp
where rn = 1
因为我没有你的桌子,这里是 Scott 的 EMP:
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17.12.80 920 20
7499 ALLEN SALESMAN 7698 20.02.81 1600 300 30
7521 WARD SALESMAN 7698 22.02.81 1250 500 30
7566 JONES MANAGER 7839 02.04.81 2975 20
7654 MARTIN SALESMAN 7698 28.09.81 1250 1400 30
7698 BLAKE MANAGER 7839 01.05.81 2850 30
7782 CLARK MANAGER 7839 09.06.81 2450 10
7788 SCOTT ANALYST 7566 09.12.82 3000 20
7839 KING PRESIDENT 17.11.81 10000 10
7844 TURNER SALESMAN 7698 08.09.81 1500 0 30
7876 ADAMS CLERK 7788 12.01.83 1100 20
7900 JAMES CLERK 7698 03.12.81 950 30
7902 FORD ANALYST 7566 03.12.81 3000 20
7934 MILLER CLERK 7782 23.01.82 1300 10
14 rows selected.
您的代码将是这样的;注意第 6 行,它按照我的建议计算行号;您将在最后一个WHERE
子句(第 11 行)中使用它,同时呈现您迫切需要的“最大”行号值。
SQL> with temp as
2 (select deptno,
3 sal,
4 row_number() over (partition by deptno order by sal) rn,
5 --
6 row_number() over (partition by deptno order by sal desc) rnd
7 from emp
8 )
9 select deptno, sal, rn
10 from temp
11 where rnd = 1
12 /
DEPTNO SAL RN
---------- ---------- ----------
10 10000 3
20 3000 4
30 2850 6
SQL>
推荐阅读
- nstableview - 从表子类访问 NSTableView 数据源
- python - 为什么 svn.remote.RemoteClient() 在 Windows 上工作时不能在 centos 服务器上工作?
- gitlab-ci - 我们是否需要为 GitLab CI 中的最后一个作业使用缓存?
- ansible - Ansible:使用 json_query 在任意深度寻找具有已知值的已知键?
- c# - Sitecore 根据父页面的父页面过滤页面
- python - 如何在方法中的字符串之外使用三引号字符串中定义的参数(使用eval())?
- java - 如何在多个属性上获得不同的列表计数?
- oracle - 如何将动态查询数据放入 Oracle 中的 CLOB 列
- java - 使用 Java 查找唯一的 Hbase 前缀键
- r - 'vjust' 在不同的条形图上的工作方式不同