SQL を使用してデータを抽出する場合、テーブル内で重複した値に遭遇することがよくあります。たとえば、UV (ユニーク ビジター数) を取得する場合は、重複を排除する必要があります。 MySQL では通常、 たとえば、次のようなテーブルタスクがあります。 述べる:
タスクの合計数を見つける必要があります。task_id は一意ではないため、重複を削除する必要があります。 明確な -- task_id のすべての一意の値を一覧表示します (重複排除後) 異なるtask_idを選択する タスクから; --タスクの合計数 select count(distinct task_id) task_num タスクから;
グループ化 -- task_id の一意の値をすべて一覧表示します (重複排除後、null も値になります) -- タスクIDを選択 -- タスクから -- task_id でグループ化します。 --タスクの合計数 select count(task_id) task_num (タスクIDを選択) タスクから タスクIDでグループ化) tmp; 行番号 row_number は次の構文を持つウィンドウ関数です。 -- ウィンドウ関数をサポートするSQLでは、select count(case when rn=1 then task_id else null end) task_numを使用します。 (タスクIDを選択) 、row_number() オーバー (task_id によるパーティション、start_time による順序) rn タスクから) tmp; さらに、テーブル テストを使用して、重複排除における distinctive と group by の使用について説明します。 -- 下のセミコロンは行を区切るために使用されます。select distinctive user_id Test から; -- 1; 2 を返します 異なる user_id、user_type を選択 Test から; -- 1, 1; 1, 2; 2, 1 を返します ユーザーIDを選択 テストから group by user_id; -- 1; 2 を返します ユーザーID、ユーザータイプを選択 テストから group by user_id, user_type; -- 1, 1; 1, 2; 2, 1 を返します ユーザーID、ユーザータイプを選択 テストから user_id でグループ化します。 -- Hive、Oracle などではエラーが報告されますが、MySQL ではこのように記述できます。 -- 1, 1 または 1, 2; 2, 1 (合計 2 行) を返します。 group by の後のフィールドのみが重複排除されます。つまり、最後に返されるレコード数は、前の SQL ステートメントのレコード数、つまり 2 レコードになります。group by の後に配置されず、select に配置されているフィールドの場合、1 つのレコードのみが返されます (通常は最初のレコードですが、パターンはありません)。 SQL 重複排除方法の概要についてはこれで終わりです。より関連性の高い SQL 重複排除方法については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 最新のウェブフロントエンドフレームワーク10選を紹介(翻訳)
>>: 1 つの記事で Apache Avro データを解析する
名前を格納するフィールドが GBK 文字セットを使用している場合、GBK 内部コード自体がエンコード...
2時間近くかけて、さまざまな方法を試しました。後で、whereでフィルタリングした後のデータ量が1ペ...
クラスを見るとき、どのような情報を得たいですか?このクラスはどこで使用され、その機能は何ですか?この...
この記事では、ドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...
今日、docker で redis 環境を構築していたところ、yum がリソースを取得できず、インタ...
目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...
このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...
設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...
序文MySQL マスター スレーブ レプリケーションの遅延は、業界では長年の問題となっています。遅延...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
1. 制限の基本的な実装一般的に、クライアントは、pageNo (ページ番号) と pageSize...
目次1. JavaScript エンジンとは何ですか? 2. V8エンジン3. ランタイム環境4. ...
VMware と Ubuntu を再インストールしましたが、コマンドラインプロンプトが単調すぎて美し...
Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...
1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...