Sqlite 根据条件顺序更新字段

Sqlite 根据条件顺序更新字段,sqlite,Sqlite,我有这个当前的示例数据集 NEW_ID Name OLD_ID New_Name 123 Hello XYZ 124 How XYZ 125 Are XYZ 126 My ABC 127 Name ABC 128 Is ABC 129 Alex ABC 我的目标是将名称字段修改为一个新的命名约定,以存储在新的名称中,即Hello_Part_1、How_Part_2

我有这个当前的示例数据集

 NEW_ID Name    OLD_ID  New_Name
    123 Hello   XYZ 
    124 How     XYZ 
    125 Are     XYZ 
    126 My      ABC 
    127 Name    ABC 
    128 Is      ABC 
    129 Alex    ABC 
我的目标是将名称字段修改为一个新的命名约定,以存储在新的名称中,即Hello_Part_1、How_Part_2、Are_Part_3,其中所有这些记录共享一个旧的_ID,在本例中为XYZ。类似地,对于My_Part_1,Name_Part_2,是_Part_3,Alex_Part_4等,ID等于ABC

我正在使用SQLLite导入.CSV文件


命名约定如下所示:NAME_PART_X,其中X在旧id的“组”内的记录数上递增。

SQL不按顺序工作;必须为每一行单独表示操作

所需的数字是具有相同旧ID且新ID与当前行的新ID相同或更小的行数。 这可以通过以下公式计算:

UPDATE MyTable
SET New_Name = Name || '_Part_' ||
               (SELECT COUNT(*)
                FROM MyTable AS T2
                WHERE T2.OLD_ID  = MyTable.OLD_ID
                  AND T2.NEW_ID <= MyTable.NEW_ID);