I want to give specific unique numbers to the following field in my db. The column looks like:
x
August 2020
August 2020
August 2020
August 2020
September 2020
September 2020
September 2020
October 2020
November 2020
December 2020
December 2020
January 2021
January 2021
February 2021
March 2021.
I want the output in the following format:
August 2020 1
August 2020 1
August 2020 1
August 2020 1
September 2020 2
September 2020 2
September 2020 2
October 2020 3
November 2020 4
December 2020 5
December 2020 5
January 2021 6
January 2021 6
February 2021 7
March 2021 8
and so on. There can be n number of rows for each of the months name. The result should have unique and incremental identifier on a month basis. And on change of year, it should continue and not restart from 0.
Advertisement
Answer
You can use dense_rank()
select col1, dense_rank() over(order by to_date(col1,'Month YYYY'))
from tablename