ホームページ >データベース >mysql チュートリアル >SQL で DISTINCT と ORDER BY を使用して一意のソート結果を取得する方法
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
このクエリ:
このアプローチでは、重複を排除する DISTINCT の機能と、データを並べ替える ORDER BY の機能を組み合わせて、希望の順序で並べ替えられた固有の結果が得られます。
以上がSQL で DISTINCT と ORDER BY を使用して一意のソート結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。