Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Serial number group by employee id

Hi,
I want to get serial number for my data in a query. As there are multiple rows for each employee id , i want to increment the serial number only when the employee id, changes.

-----------------------------------------------------------
WITH DETAILS AS (
select 1 empid, 'JAN' MON,1 AMOUNT FROM DUAL UNION ALL
select 1 empid, 'FEB' MON,2 AMOUNT FROM DUAL UNION ALL
select 1 empid, 'MAR' MON,3 AMOUNT FROM DUAL UNION ALL
select 1 empid, 'APR' MON,4 AMOUNT FROM DUAL UNION ALL

select 2 empid, 'JAN' MON,10 AMOUNT FROM DUAL UNION ALL
select 2 empid, 'FEB' MON,20 AMOUNT FROM DUAL UNION ALL
select 2 empid, 'MAR' MON,30 AMOUNT FROM DUAL UNION ALL

select 3 empid, 'JAN' MON,100 AMOUNT FROM DUAL UNION ALL
select 3 empid, 'FEB' MON,200 AMOUNT FROM DUAL UNION ALL
select 3 empid, 'MAR' MON,300 AMOUNT FROM DUAL UNION ALL
select 3 empid, 'APR' MON,400 AMOUNT FROM DUAL UNION ALL
select 3 empid, 'APR' MON,500 AMOUNT FROM DUAL UNION ALL

select 4 empid, 'JAN' MON,1000 AMOUNT FROM DUAL UNION ALL
select 4 empid, 'FEB' MON,20000 AMOUNT FROM DUAL UNION ALL
select 4 empid, 'MAR' MON,30000 AMOUNT FROM DUAL UNION ALL
select 4 empid, 'APR' MON,40000 AMOUNT FROM DUAL

)

SELECT row_number () over ( order by EMPID ) as SLNO
, EMPID
, MON
, AMOUNT
FROM DETAILS;
---------------------------------------------------------------------

with the above query i get the following result

image.pngInstead, i want the following result
image.png
Is it possible in a query ?

Please help.

This post has been answered by mathguy on May 23 2022
Jump to Answer
Comments
Post Details
Added on May 23 2022
2 comments
565 views