ホームページ >データベース >mysql チュートリアル >SQL で DISTINCT と ORDER BY を使用して一意のソート結果を取得する方法

SQL で DISTINCT と ORDER BY を使用して一意のソート結果を取得する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-07 09:26:40474ブラウズ

How to Get Unique Sorted Results Using DISTINCT and ORDER BY in SQL?

DISTINCT と ORDER BY を組み合わせて一意の結果を得る

重複した値を含むデータセットに直面した場合、DISTINCT を使用して重複を削除することが不可欠です。ユニークな結果が得られます。ただし、並べ替えも必要な場合、同じ SELECT ステートメントで ORDER BY を使用すると問題が生じる可能性があります。

この問題に対処するには、次のクエリを検討してください。

SELECT  Category  FROM MonitoringJob ORDER BY CreationDate DESC

このクエリはデータを取得します。 MonitoringJob テーブルから取得し、CreationDate 列の降順で結果を並べ替えます。望ましい結果は、最新の作成日で並べ替えられた一意のカテゴリのリストです。ただし、クエリでは重複した値が生成されます。

この問題を解決するには、DISTINCT を使用することが考えられます:

SELECT DISTINCT Category FROM MonitoringJob ORDER BY CreationDate DESC

残念ながら、DISTINCT は単一の ORDER BY では機能しないため、このクエリは失敗します。

この問題を解決するには、集計関数と GROUP BY 句を使用できます。使用:

SELECT DISTINCT Category, MAX(CreationDate) 
FROM MonitoringJob 
GROUP BY Category 
ORDER BY MAX(CreationDate) DESC, Category

このクエリ:

  1. MAX() 集計関数を使用して、各カテゴリの最新作成日を検索します。
  2. GROUP BY を使用して、結果をカテゴリ別にグループ化し、一意の値を保証します。
  3. 最初に結果を最新の作成日で並べ替えます (降順)。

このアプローチでは、重複を排除する DISTINCT の機能と、データを並べ替える ORDER BY の機能を組み合わせて、希望の順序で並べ替えられた固有の結果が得られます。

以上がSQL で DISTINCT と ORDER BY を使用して一意のソート結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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