0

MYSQL テーブル 'table1' に挿入したいレコードがいくつかあります。それらのいくつかは重複しています。

「FIELD A」と「DUP_NUMBER」で構成される複合一意制約があります

したがって、レコードのグループは概略的に次のようになります。

ID     FIELD A     DUP_NUMBER 
1       text1        0
2       text2        0
3       text2        1
4       text2        2
5       text3        0

もう一度実際にテーブルに挿入します。もしそうなら、これは可能ですか?

FIELD a の一意のエントリのみを選択する mysql select ステートメントを探していますが、最高の DUP_NUMBER を取得するという条件が追加されています。

結果セットは次のようになります。

ID     FIELD A     DUP_NUMBER 
1       text1        0
4       text2        2
5       text3        0

前もって感謝します、

明細書

4

3 に答える 3

1

次のクエリを使用できます。

SELECT `FIELD A`, MAX(`DUP_NUMBER`) AS `DUP_NUMBER`
FROM `table1`
GROUP BY `FIELD A`

データをそのまま構造化する必要がありますか? 重複DUP_NUMBERした番号がID.

于 2013-04-09T21:08:38.927 に答える
1

これを試して

   select id , `field a` ,MAX(`DUP_NUMBER`) as dup_number  
   from table1 group by `FIELD A`

デモはこちら

于 2013-04-09T21:08:39.163 に答える
1

次のように実行できます。

SELECT field_a, max(dup_number) as dup
FROM table1
GROUP BY field_a

集計機能により、重複数のmax最大値が得られますが、グループによるグループ化では、一意のアイテムのみが表示されます。

ID も知りたい場合は、次のようにします。

SELECT t.*
FROM table1 t INNER JOIN (
    SELECT field_a, max(dup_number) as dup
    FROM table1
    GROUP_BY dup_number
) g ON t.field_a = g.field_a AND t.dup_number = g.dup
于 2013-04-09T21:14:44.087 に答える