1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
   |  
SQL> select * from t order by lieu;
 
NOM                            LIEU                                  AGE
------------------------------ ------------------------------ ----------
SALIM                          MONTREAL                               20
MOUNIR                         MONTREAL                               20
JEAN                           MONTREAL                               25
ROBERT                         QUEBEC                                 30
RICHARD                        QUEBEC                                 27
 
SQL> with region as
  2  (SELECT lieu,nom,age, row_number()over(partition by lieu order by nom asc) rn
  3  from t)
  4  SELECT case  when rn!=1 then
  5                      null
  6     else lieu
  7      end  lieu_grp
  8     ,nom ,age FROM region order by  lieu,rn;
 
LIEU_GRP                       NOM                                   AGE
------------------------------ ------------------------------ ----------
MONTREAL                       JEAN                                   25
                               MOUNIR                                 20
                               SALIM                                  20
QUEBEC                         RICHARD                                27
                               ROBERT                                 30
 
SQL> | 
Partager