SQLで重複したクエリを削除する方法
SQL 重複排除クエリ方法: 単一フィールド peopleId に基づいて重複レコードを判断し、ステートメントを使用して削除します。コードは [where peopleId in (peopleId で people グループから peopleId を選択]) です。
SQL 重複排除クエリ方法:
重複レコードを削除する SQL 単一テーブル/複数テーブル クエリ
単一テーブルの個別のクエリ
複数のテーブル group by
group by は order by と limit の前に配置する必要があります、そうしないとエラーが報告されます
1. テーブル内の冗長な重複レコードを検索します。レコードは単一フィールド (peopleId) に基づいて判断されます。
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2 を判断します。テーブル内の重複する重複レコードを削除します。重複レコードは単一フィールド (peopleId) に基づいて判断され、最小値のレコードのみが残ります。 rowid
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3. テーブル
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
で重複する重複レコード (複数フィールド) を検索します。テーブル内の重複する重複レコード (複数フィールド) を削除し、最小の rowid を持つレコードのみを残します
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5. 最小の ROWID を持つレコードを除外して、テーブル内の重複する重複レコード (複数のフィールド) を検索します。
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(2)
例:
テーブル A に「名前」というフィールドがあります。
異なるレコード間の「名前」値は同じである可能性があります。
次に、「名前」値をクエリする必要があります。テーブル内の各レコード間に重複項目があります;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
性別も同じ場合、結果は次のようになります:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(3)
方法 1
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0
方法 2
「重複レコード」には 2 つの意味があります: 1 つは完全に重複したレコード、つまりすべてのフィールドが繰り返されるレコード、もう 1 つは一部のフィールドが重複しているレコードです。重複する名前フィールドなどのキー フィールドが繰り返され、その他のフィールドは繰り返されないか、無視できます。
1. 最初のタイプの繰り返しについては、解決が簡単です。
select distinct * from tableName
重複レコードのない結果セットを取得するには。
テーブルで重複レコードを削除する必要がある場合 (1 つの重複レコードを保持)、次のように削除できます。select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp
select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2)
select * from tablename where id in (select id from tablename group by id having count(id) > 1 )
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
関連する学習に関する推奨事項:
以上がSQLで重複したクエリを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

「OracleSQLでの除算演算の使用方法」 OracleSQLでは、除算演算は一般的な数学演算の1つです。データのクエリと処理中に、除算演算はフィールド間の比率を計算したり、特定の値間の論理関係を導出したりするのに役立ちます。この記事では、OracleSQL での除算演算の使用法を紹介し、具体的なコード例を示します。 1. OracleSQL における除算演算の 2 つの方法 OracleSQL では、除算演算を 2 つの異なる方法で実行できます。

Oracle と DB2 は一般的に使用される 2 つのリレーショナル データベース管理システムであり、それぞれに独自の SQL 構文と特性があります。この記事では、Oracle と DB2 の SQL 構文を比較し、相違点を示し、具体的なコード例を示します。データベース接続 Oracle では、次のステートメントを使用してデータベースに接続します: CONNECTusername/password@database DB2 では、データベースに接続するステートメントは次のとおりです: CONNECTTOdataba

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

SQL における Identity とは何ですか? 具体的なコード例が必要です。SQL では、Identity は自動インクリメント数値の生成に使用される特別なデータ型です。多くの場合、テーブル内のデータの各行を一意に識別するために使用されます。 Identity 列は、各レコードが一意の識別子を持つようにするために、主キー列と組み合わせてよく使用されます。この記事では、Identity の使用方法といくつかの実用的なコード例について詳しく説明します。 Identity の基本的な使用方法は、テーブルを作成するときに Identity を使用することです。

背景: 企業のニーズの 1 つは、企業の既存のリンク トラッキング ログ コンポーネントが MySQL の SQL 実行時間の出力をサポートする必要があるということです。リンク トラッキングを実装する一般的な方法は、サードパーティのフレームワークまたはツールによって提供されるインターセプタ インターフェイスまたはフィルタ インターフェイスを実装することです。 MySQL も例外ではなく、実際には、MySQL によって駆動されるインターセプタ インターフェイスを実装しているだけです。 MySQL チャネルにはさまざまなバージョンがあり、バージョンごとにインターセプタ インターフェイスが異なるため、使用する MySQL ドライバのバージョンに応じて応答インターセプタを実装する必要があります。次に、MySQL チャネル 5 と 6 をそれぞれ紹介します8。バージョンの実装。ここでは、Statem を実装する例として MySQL チャネル 5.1.18 バージョンを使用して MySQL5 を実装します。

解決策: 1. ログインしているユーザーがデータベースにアクセスまたは操作するための十分な権限を持っているかどうかを確認し、ユーザーが正しい権限を持っているかどうかを確認します; 2. SQL Server サービスのアカウントに指定されたファイルまたはデータベースにアクセスする権限があるかどうかを確認します。 3. 指定されたデータベース ファイルが他のプロセスによって開かれているかロックされているかどうかを確認し、ファイルを閉じるか解放して、クエリを再実行します。管理者として試してください。Management Studio をなどとして実行します。

Springboot+Mybatis-plus が SQL ステートメントを使用して複数テーブルの追加操作を実行しない場合、私が遭遇した問題は、テスト環境で思考をシミュレートすることによって分解されます: パラメーターを含む BrandDTO オブジェクトを作成し、パラメーターをバックグラウンドに渡すことをシミュレートします。 Mybatis-plus で複数テーブルの操作を実行するのは非常に難しいことを理解してください。Mybatis-plus-join などのツールを使用しない場合は、対応する Mapper.xml ファイルを設定し、臭くて長い ResultMap を設定するだけです。対応する SQL ステートメントを記述します。この方法は面倒に見えますが、柔軟性が高く、次のことが可能です。
