如何根据 SQL 中的 MIN(DATE) 通过递增 id 创建新列

How create new col by increment it based on MIN(DATE) in SQL

我想根据日期创建新列。如果是 MIN(DATE) 那么 new_col = 0 else new_col = 1 or 2 or 3 etc.

所以我有这个 table :

customer_id date
1 2020-01-01
2 2020-12-01
2 2020-03-02
3 2020-04-06
1 2020-07-06
1 2020-08-12

我想要这个输出:

customer_id MIN(date) date new_col
1 2020-01-01 2020-01-01 0
2 2020-03-02 2020-12-01 0
2 2020-03-02 2020-03-02 1
3 2020-04-06 2020-04-06 0
1 2020-01-01 2020-07-06 1
1 2020-01-01 2020-08-12 2

所以我想将每个日期组的这个新列按 MIN(DATE) 递增 1。

预先感谢您的帮助

你可以使用window函数:

select * , row_number() over (partition by customer_id order by date) -1 new_col
from table