oracle中的行数

oracle中的行数,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子句包含到函数中,我不知道您正在按降序对数据进行排序,这样您的max实际上变成了min,其RN=1,

我想根据最后一行号获取数据

我要用黄色突出显示这些记录。请指导。

应该是一个简单的MAX函数

select max(row_number) rn, 
       account_no
from your_table
group by account_no
order by account_no;
如果row_number表示分析函数的结果,但到目前为止您发布的内容还不清楚,那么将ORDER BY子句包含到函数中,我不知道您正在按降序对数据进行排序,这样您的max实际上变成了min,其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
因为我没有你的桌子,这是斯科特的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>

使用行数作为分析函数。。。因此,我们不能简单地使用max函数。我使用的查询是这样的-从表\u NAME中选择按ACCOUNTNO ORDER BY ACCOUNTNO划分的行\u编号、列B、列C、列D、列E;所有的田地都是小鬼。。。。因此,在这个基础上,你可以询问如何获得上面问题中以黄色突出显示的记录。为什么你一开始不这么说?我添加了更多的信息;看一看。我还是不会得到那个数据,因为你提到了rn=1的条件……想要那个用黄色突出显示的数据……对我有用,至少我理解这个问题的方式是这样的。如果这不是您想要的,请在创建表后插入样本数据和所需输出;那我去看看。