私は次の表を持っています
|| some_id || value_A || value_B || timestamp ||
-------------------------------------------------
|| 3 || 1000 || 1 || 1362979652 ||
|| 3 || 1001 || 2 || 1362979652 ||
|| 4 || 1002 || 2 || 1362979652 ||
|| 4 || 1003 || 3 || 1362979652 ||
|| 4 || 1004 || 3 || 1362979652 ||
|| 3 || 1000 || 1 || 1362980605 ||
|| 3 || 1001 || 1 || 1362980605 || <-- value_b is different here
|| 4 || 1002 || 2 || 1362980605 ||
|| 4 || 1003 || 3 || 1362980605 ||
|| 4 || 1004 || 2 || 1362980605 || <-- value_b is different here
テーブルは一連のデータで構成され、ほぼ同一の一連のデータが挿入されます (タイムスタンプが異なります)。value_B
上記のように、一部の行でデータが異なるため、データはまったく同じではありません。
私がする必要があるのは、すべての重複行を削除し、古い同様の行を新しい行に置き換えることです (新しい行には新しいタイムスタンプがあります)。
いくつかの異なる内部結合アプローチを試しましたが、苦労しています。二部構成だと思います。まず、重複を単純に取り除く必要があります。
|| some_id || value_A || value_B || timestamp ||
-------------------------------------------------
|| 3 || 1000 || 1 || 1362979652 ||
|| 3 || 1001 || 2 || 1362979652 ||
|| 4 || 1002 || 2 || 1362979652 ||
|| 4 || 1003 || 3 || 1362979652 ||
|| 4 || 1004 || 3 || 1362979652 ||
|| 3 || 1000 || 1 || 1362980605 || <-- will be deleted
|| 3 || 1001 || 1 || 1362980605 ||
|| 4 || 1002 || 2 || 1362980605 || <-- will be deleted
|| 4 || 1003 || 3 || 1362980605 || <-- will be deleted
|| 4 || 1004 || 2 || 1362980605 ||
some_id
次に、同じvalue_A
値を持つ新しい行が残っている場合は、古い行を削除する必要があります。
|| some_id || value_A || value_B || timestamp ||
-------------------------------------------------
|| 3 || 1000 || 1 || 1362979652 ||
|| 3 || 1001 || 2 || 1362979652 || <-- will be deleted
|| 4 || 1002 || 2 || 1362979652 ||
|| 4 || 1003 || 3 || 1362979652 ||
|| 4 || 1004 || 3 || 1362979652 || <-- will be deleted
|| 3 || 1001 || 1 || 1362980605 ||
|| 4 || 1004 || 2 || 1362980605 ||
したがって、処理後、上記の結果の表は次のようになります。
|| some_id || value_A || value_B || timestamp ||
-------------------------------------------------
|| 3 || 1000 || 1 || 1362979652 ||
|| 4 || 1002 || 2 || 1362979652 ||
|| 4 || 1003 || 3 || 1362979652 ||
|| 3 || 1001 || 1 || 1362980605 ||
|| 4 || 1004 || 2 || 1362980605 ||
実際には、作業しているテーブルには数千行のデータがあるため、効率的なソリューションを探しています。そのため、効率が重要です。