[解決済み] SQLテーブルで重複する値を検索する
2022-03-18 06:15:45
質問
1つのフィールドで簡単に重複を見つけることができます。
SELECT email, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1
つまり、テーブルがあるとすれば
ID NAME EMAIL
1 John [email protected]
2 Sam [email protected]
3 Tom [email protected]
4 Bob [email protected]
5 Tom [email protected]
このクエリでは、John, Sam, Tom, Tomはすべて同じ
email
.
しかし、私が欲しいのは、同じ
email
と
name
.
つまり、"Tom"、"Tom"を取得したいのです。
これが必要な理由 私はミスをして、重複する
name
と
email
の値を指定します。さて、重複を削除/変更する必要があるので、以下のようにします。
見つける
を指定します。
解決方法は?
SELECT
name, email, COUNT(*)
FROM
users
GROUP BY
name, email
HAVING
COUNT(*) > 1
両方のカラムにグループ化するだけです。
注:古い ANSI 標準では、非集約カラムをすべて GROUP BY に含めることになっていますが、この考え方は、次のように変更されました。 機能的依存性("functional dependency")。 :
関係データベース理論では、関数従属はデータベースからの関係における2組の属性間の制約である。言い換えれば、関数従属は関係における属性間の関係を記述する制約である。
サポートに一貫性がない。
- 最近のPostgreSQL がサポートしています。 .
- SQL Server (SQL Server 2017 時点) では、依然として GROUP BY にすべての非集約カラムが必要です。
-
MySQLは予測不可能なため、必要なのは
sql_mode=only_full_group_by
:- GROUP BY lname ORDER BYで間違った結果が表示されます。 ;
- ANY()がない場合、最もコストのかからない集約関数はどれか? (受理された回答のコメント参照)。
- オラクルは十分にメインストリームではない(警告:ユーモア、オラクルのことは知らない)。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] 重複した行を削除するにはどうすればよいですか?
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] SQLサーバーで行を列に効率的に変換する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
MHAクラスタエラーサマリーの構築
-
[解決済み] MySQLの 一意な値を選択する
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み] SQL Server 2008を使用してIDENTITY_INSERTをオン/オフする方法は?
-
[解決済み] "ON UPDATE CASCADE "を使用する場合について
-
[解決済み】FROM句で更新対象のテーブルを指定できない