0

テーブル Person から、ID を持つ重複のリストを返す SQL クエリがあります。

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];')

重複の数が可変の場合の方法が本当にわかりません。

助けてくれてどうもありがとう

4

1 に答える 1

0

名前でグループ化し、各グループから最小の人物 ID を選択します。

また、Python Pandasの使用を検討し、すべてのデータを Pandas DataFrame にダンプするだけで、drop_duplicates関数を使用できます。独自の SQL-to-h5 および SQL-to-Pandas バックエンド コードを作成して、すべての Python 作業を Pandas で実行し、SQL を直接いじることがないようにすることは、努力する価値があることがわかりました。

于 2012-10-06T18:55:20.547 に答える