Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan DISTINCT dan ORDER BY untuk Keputusan Unik, Tertib dalam SQL?

Bagaimana untuk Menggabungkan DISTINCT dan ORDER BY untuk Keputusan Unik, Tertib dalam SQL?

DDD
DDDasal
2025-01-07 09:06:42257semak imbas

How to Combine DISTINCT and ORDER BY for Unique, Ordered Results in SQL?

Cara Menggunakan DISTINCT dan ORDER BY dalam Pernyataan PILIHAN Yang Sama

Pertanyaan yang dilaksanakan selalunya mengembalikan data pendua dan memesan data tersebut menggunakan ORDER BY sahaja mungkin tidak mencukupi untuk mengalih keluar pendua ini. Dengan menggabungkan DISTINCT dan ORDER BY dalam satu pernyataan SELECT, bagaimanapun, pembangun boleh menghapuskan pendua dengan cekap sambil mengekalkan susunan yang diingini.

Untuk menangani perkara ini, klausa ORDER BY mesti memasukkan lajur yang digunakan dalam klausa SELECT. Apabila DISTINCT digunakan, ia mengumpulkan hasil berdasarkan lajur yang ditentukan, dengan berkesan mengalih keluar pendua. Walau bagaimanapun, jika klausa ORDER BY merujuk kepada lajur yang tidak disertakan dalam DISTINCT, pesanan akan tersalah mengumpulkan semua baris dengan nilai yang sama dalam lajur PILIH, yang membawa kepada hasil pendua.

Penyelesaian:
Untuk menyelesaikan isu ini, pertanyaan harus menggunakan fungsi agregat, seperti MAX(), untuk mengisih pada lajur yang dikehendaki (CreationDate dalam kes ini). Selain itu, klausa GROUP BY ditambah untuk mengumpulkan hasil mengikut lajur DISTINCT (Kategori). Gabungan ini memastikan pendua dialih keluar sambil mengekalkan susunan keputusan. Pertanyaan yang diubah suai adalah seperti berikut:

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

Pertanyaan yang disemak ini akan mengeluarkan hasil yang diingini, menghapuskan pendua daripada Kategori dan menyusunnya mengikut CreationDate dalam susunan menurun, diikuti oleh Kategori.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan DISTINCT dan ORDER BY untuk Keputusan Unik, Tertib dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn