Sql 分组依据条款-仅限第一个“;集团行“;充满价值

Sql 分组依据条款-仅限第一个“;集团行“;充满价值,sql,oracle,group-by,Sql,Oracle,Group By,嘿,伙计们,我需要你们的帮助 实际上我有一个select语句,它包含一个group by col1,col2,col3 但我需要的是,只有“group”的第一行应该显示值。以下行应为null或空白。应该是这样的: SQL> break on deptno on job SQL> select deptno, job, ename, sal 2 from emp 3 order by deptno, job, ename; DEPTNO JOB EN

嘿,伙计们,我需要你们的帮助

实际上我有一个select语句,它包含一个group by col1,col2,col3

但我需要的是,只有“group”的第一行应该显示值。以下行应为null或空白。应该是这样的:

SQL> break on deptno on job
SQL> select deptno, job, ename, sal
  2  from emp
  3  order by deptno, job, ename;

    DEPTNO JOB       ENAME             SAL
---------- --------- ---------- ----------
        10 CLERK     MILLER           1300
           MANAGER   CLARK            2450
           PRESIDENT KING             5000
        20 ANALYST   FORD             3000
                     SCOTT            3000
           CLERK     ADAMS            1100
                     SMITH             800
           MANAGER   JONES            2975
        30 CLERK     JAMES             950
           MANAGER   BLAKE            2850
           SALESMAN  ALLEN            1600
                     MARTIN           1250
                     TURNER           1500
                     WARD             1250

14 rows selected.

这可能吗!?如果是,怎么做?:-)

谢谢你的帮助!! Anja通常被称为休息。SQL*Plus有,Oracle Reports有,Application Express也有。。。因此,根据您将在何处使用它,您可以通过选择要在哪些列上断开报告,以声明的方式进行操作

这是一个SQL*Plus示例

首先,斯科特的EMP表“原样”:

如果应用中断,则如下所示:

SQL> break on deptno on job
SQL> select deptno, job, ename, sal
  2  from emp
  3  order by deptno, job, ename;

    DEPTNO JOB       ENAME             SAL
---------- --------- ---------- ----------
        10 CLERK     MILLER           1300
           MANAGER   CLARK            2450
           PRESIDENT KING             5000
        20 ANALYST   FORD             3000
                     SCOTT            3000
           CLERK     ADAMS            1100
                     SMITH             800
           MANAGER   JONES            2975
        30 CLERK     JAMES             950
           MANAGER   BLAKE            2850
           SALESMAN  ALLEN            1600
                     MARTIN           1250
                     TURNER           1500
                     WARD             1250

14 rows selected.
非常符合您的要求。

您可以使用
first\u value
函数,并将
设置为以下3个和无限制的
窗口子句:


请编辑问题并发布您尝试过的sql。请看一下oracle分析函数。另外,请以文本形式提供示例数据,最好是SQL语句。人们无法从图像中剪切“n”粘贴,这意味着他们需要手工键入所有内容,这既繁琐又耗时。你在互联网上向一群陌生人求助:如果你让人们编写和测试代码变得容易,你就更有可能更早得到有用的回复。这种格式是UI配置问题,而不是SQL问题。
with t(col1,col2,col3,col4) as
(
 select 'A', 'A1', .3, 'Pramisse 1' from dual union all  
 select 'A', 'A1', .3, 'Pramisse 2' from dual union all    
 select 'A', 'A1', .3, 'Pramisse 3' from dual union all 
 select 'A', 'A1', .3, 'Pramisse 4' from dual union all     
 select 'A', 'A2',  1, 'Pramisse 1' from dual union all    
 select 'A', 'A2',  1, 'Pramisse 2' from dual union all 
 select 'A', 'A2',  1, 'Pramisse 3' from dual union all 
 select 'A', 'A2',  1, 'Pramisse 4' from dual union all     
 select 'A', 'A3',  1, 'Pramisse 1' from dual union all    
 select 'A', 'A3',  1, 'Pramisse 2' from dual union all 
 select 'A', 'A3',  1, 'Pramisse 3' from dual union all 
 select 'A', 'A3',  1, 'Pramisse 4' from dual   
)    
select first_value(col1) over 
         ( partition by col2 order by col4 rows 
           between 3 following and unbounded following ) as col1, 
       first_value(col2) over 
         ( partition by col2 order by col2 rows 
           between 3 following and unbounded following ) as col2, 
       first_value(col3) over 
         ( partition by col2 order by col4 rows 
           between 3 following and unbounded following ) as col3, 
       col4
  from t;

COL1    COL2    COL3    COL4
----    ----    -----   ----------
A       A1      0,30    Pramisse 1
                        Pramisse 2
                        Pramisse 3
                        Pramisse 4
A       A2      1       Pramisse 1
                        Pramisse 2
                        Pramisse 3
                        Pramisse 4
A       A3      1       Pramisse 1
                        Pramisse 2
                        Pramisse 3
                        Pramisse 4