我有一个sql查询,它从我的表中返回一个带有id的重复项列表Person:
1 hudson
43 hudson
67 hudson
34 roger
79 roger
89 kerry
403 kerry
使用Python脚本,我想自动执行此类查询,例如“hudson”案例:
UPDATE Customer SET person_id = 1 WHERE person_id = 43;
当设置重复次数(例如2)时,我认为我们可以这样做:
cursor.execute(*myquery that returns list of duplicates*)
rows=cursor.fetchmany(2)
row1=rows[1] #??
row2=rows[2] #??
cursor.execute('UPDATE Customer SET person_id = row1[0] WHERE person_id = row2[0];')
当副本数量可变时,我真的不知道怎么办。
非常感谢你的帮助
答案 0 :(得分:0)
按名称分组,并从每个组中选择最小人员ID。
另外考虑使用Python Pandas并将所有数据转储到Pandas DataFrame中,然后您就可以使用drop_duplicates
函数了。我发现创建我自己的SQL-to-h5和SQL-to-Pandas后端代码非常值得我让我在Pandas中完成所有Python工作,而不是直接搞乱SQL。