ホームページ >データベース >mysql チュートリアル >単一の SQL SELECT ステートメントで DISTINCT と ORDER BY を併用して重複を削除し、日付で並べ替えるにはどうすればよいですか?
単一の SELECT ステートメントで DISTINCT と ORDER BY を使用する
データを順序付けしながら結果セットから重複を削除しようとしました。特定の日付で、DISTINCT と ORDER BY が連携して動作しないという問題が発生しました。
この問題は、ORDER BY 句で使用される列が DISTINCT 関数で指定されていない場合に発生します。これに対処するには、DISTINCT 内で集計関数を利用し、目的のカテゴリごとにデータをグループ化する必要があります。
目的の結果を達成するには、次のコードを検討してください。
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Thisクエリは集計関数 MAX(CreationDate) を使用して、最新の作成日で行を並べ替えます。 GROUP BY 句を使用すると、異なるカテゴリのみが結果セットに含まれるようになります。最後に、ORDER BY 句が集計関数とカテゴリ列に適用され、カテゴリが指定された方法で順序付けされることが保証されます。
以上が単一の SQL SELECT ステートメントで DISTINCT と ORDER BY を併用して重複を削除し、日付で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。