ホームページ >データベース >mysql チュートリアル >Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する

Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する

WBOY
WBOYオリジナル
2024-03-08 13:33:03782ブラウズ

Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する

Oracle データベース クエリ スキル: 重複データを 1 つだけ取得します。特定のコード サンプルが必要です。

実際のデータベース クエリでは、重複データを取得する必要があることがよくあります。 from 唯一のデータを取得します。この記事では、Oracle データベースのテクニックを使用して重複データから 1 つのレコードのみを取得する方法を紹介し、具体的なコード例を示します。

シナリオの説明

従業員情報を含む employee という名前のテーブルがあるとします。従業員情報が重複している可能性があります。重複する従業員情報をすべて取得するのではなく、重複するすべての従業員情報のレコードをクエリする必要があります。

クエリの実装

この要件を達成するには、Oracle データベースのウィンドウ関数 ROW_NUMBER()PARTITION BY ステートメントと組み合わせて使用​​します。具体的な実装のアイデアは、各レコードにシリアル番号を割り当て、シリアル番号 1 のレコードをフィルターで除外して、繰り返されるデータの各セットの最初のレコードを取得することです。

以下は、上記の考え方に基づく具体的なコード例です。

SELECT *
FROM (
    SELECT 
        e.*,
        ROW_NUMBER() OVER (PARTITION BY e.employee_id ORDER BY e.employee_id) AS rn
    FROM employee e
) tmp
WHERE rn = 1;

上記のコードでは、最初にサブクエリを通じてシリアル番号 rn が各レコードに追加されます。 、および employee_id フィールドに基づくグループ。次に、外部クエリでシリアル番号 1 のレコードをフィルターで除外すると、繰り返されるデータの各セットの最初のレコードを取得できます。

例の説明

employee テーブルが次の構造を持つと仮定します:

#1张三技術部2李思営業部
employee_id 名前 部門
1 张三 技術部門
2 李四 営業部
3 王五 # #財務部
上記のコード例を実行すると、次の結果が返されます:

従業員 ID #name 部門 ##123上記の例からわかるように、重複データから各データセットの最初のレコードを取得することに成功しました。データを収集し、クエリのニーズを満たします。
张三 技術部
李四 営業部
王五 財務部

概要

この記事では、Oracleデータベースの重複データから1レコードだけを取得する実装方法と具体的なコード例を紹介します。ウィンドウ関数

ROW_NUMBER()

PARTITION BY ステートメントを使用すると、この要件を簡単に達成でき、クエリの効率とデータ処理の精度が向上します。この記事が実際のデータベース クエリ作業に役立つことを願っています。

以上がOracle データベースのクエリ スキル: 重複データを 1 つだけ取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。