根据select distinct在Postgres中插入值



我有下表,

XTable
id | mapname | category | value
1    mapone.   cat1.       val1
2.   mapone    cat2        val2
3.   mapone.   cat3.       val3
4.   maptwo.   cat1        val1
5.   maptwo.   cat2        val4

现在我需要在中执行以下操作

对于每个不同的映射名称,插入具有相同映射名称但不同类别的行

所以像这样的东西,

insert into XTable values (DEFAULT,"my_new_category","valueone");

问题是,我找不到一个sql可以执行这种循环操作。

使用窗口函数:

SELECT id,
mapname,
'cat' || row_number() OVER (PARTITION BY mapname ORDER BY id) AS category,
value
FROM atable;

最新更新