0

2 つの列を含むテーブルがあります。

count | when
101   | 10:11
101   | 10:12
102   | 10:13
102   | 10:14
102   | 10:15
102   | 10:16
103   | 10:17
105   | 10:18
105   | 10:19
105   | 10:20

重複するエントリをすべて削除する必要がありますが、最小値と最大値countを持つ 2 つの行を残します。when

count | when
101   | 10:11
101   | 10:12
102   | 10:13 _ removed 2 rows
102   | 10:16
103   | 10:17
105   | 10:18 _ removed 1 row
105   | 10:20

これは、主に統計目的で使用されるテーブル サイズを最小化するためです。したがって、同じ Y 軸値を持つポイントは無関係です。

4

1 に答える 1

1

MySQL はjoin、コマンドの構文をサポートしていますdelete

この構文を使用して、適切なレコードを削除するためのフィルターを設定できます。

delete t
    from yourtable t join
         (select count, min(when) as minwhen, max(when() as maxwhen
          from yourtable
          group by count
         ) tokeep
         on t.count = tokeep.count and (t.when > tokeep.minwhen and t.when < tokeep.maxwhen);
于 2013-08-22T22:51:23.520 に答える