sql >> データベース >  >> RDS >> Mysql

テーブル内の名前と番号の重複を見つけるためにクエリを実行します

    更新された質問

    「番号と名前の両方で重複する」...「名前と番号を異なる列として」
    ここで行を2回カウントできます!

    SELECT lower(name), NULL AS number, count(*) AS ct
    FROM   tbl
    GROUP  BY lower(name)
    HAVING count(*) > 1
    
    UNION  ALL
    SELECT NULL, number, count(*) AS ct
    FROM   tbl
    GROUP  BY number
    HAVING count(*) > 1;
    

    -> sqlfiddle

    元の質問

    問題は、クエリがグループ化されることです

    GROUP  BY lower(name), number
    

    3行目と4行目は異なる 番号 、このクエリでは同じではありません。

    このクエリの異なる番号を無視する場合は、次のようにしてみてください。

    SELECT lower(name)
         , count(*) AS ct
    FROM   tbl
    GROUP  BY lower(name)
    HAVING count(*) > 1;
    


    1. スナップショットレプリケーションを作成する方法

    2. MySqlでboolをintに変換する方法

    3. 失敗したすべてのSQLステートメントをOracle10Gに記録する方法はありますか

    4. 複数の結合でMySQLクエリを高速化するにはどうすればよいですか?