ホームページ >データベース >mysql チュートリアル >SQL の特定の列から個別の値を選択するにはどうすればよいですか?

SQL の特定の列から個別の値を選択するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-30 06:35:10304ブラウズ

How to Select Distinct Values from Specific Columns in SQL?

特定の列の DISTINCT 選択

DISTINCT キーワードは通常、重複のある行全体を除外しますが、個別の列が必要な場合もあります。特定の列のみの値。 Products テーブルからデータを取得するクエリのコンテキストでこれを実現する方法を見てみましょう。

元のクエリは Products テーブルからすべての列を取得します。

SELECT ID, Email, ProductName, ProductModel FROM Products

目的は次のとおりです。一意の電子メール アドレスを返すようにクエリを変更し、他の列での重複を許可します。これを実現するには、電子メールによるウィンドウ パーティションと一緒に ROW_NUMBER() 関数を利用できます。

SELECT *
  FROM (
                SELECT  ID, 
                        Email, 
                        ProductName, 
                        ProductModel,
                        ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                    FROM Products
              ) a
WHERE rn = 1

この強化されたクエリの動作方法は次のとおりです。

  1. ROW_NUMBER() 関数は次の値を割り当てます。 ID の降順で、電子メールの各パーティション内にある一意の行インデックス「rn」。
  2. サブクエリは、元のクエリのすべての列と行インデックス 'rn' を含む中間テーブルを生成します。
  3. 次に、外側のクエリはサブクエリの結果をフィルタリングして、'rn' が 1 に等しい行のみを含めます。効果的に、一意のメールごとに最新の行を返します。

その結果、この変更されたクエリは Products テーブルからすべての列を取得し、重複がないことを保証します。電子メール アドレスが存在します。

以上がSQL の特定の列から個別の値を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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