根据现有列派生其他列

时间:2018-08-24 20:02:27

标签: sql postgresql greenplum

我有500条记录,其中有10列。基于日期列,我想创建另外两个列(date_id, record_id)。日期列是唯一的。

  • Date_id列值应为:F + date + unique identifier

  • Record_id列值应为:C + date + unique identifier

例如:

Date     
15Jul2017        

预期输出:

Date             date_id                     record_id 
---------------  --------------------------  --------------
15Jul2017        F+15Jul2017+1               C+15Jul2017+1
15Jul2017        F+15Jul2017+2               C+15Jul2017+2
...so on until 500 records
15Jul2017        F+15Jul2017+500             C+15Jul2017+500

1 个答案:

答案 0 :(得分:3)

您可以使用row_number()

select t.date,
       ('F+' || date || '+' || row_number() over (order by date)) as date_id,
       ('c+' || date || '+' || row_number() over (order by date)) as record_id
from t;

如果您的日期实际上是作为日期而不是字符串存储的,那么您可能需要将其格式化为首选格式。