Menggabungkan DISTINCT dan ORDER BY untuk Hasil Unik
Apabila berhadapan dengan set data yang mengandungi nilai pendua, menggunakan DISTINCT untuk mengalih keluar pendua boleh menjadi penting untuk memperoleh hasil yang unik. Walau bagaimanapun, apabila pengisihan juga diperlukan, menggunakan ORDER BY dalam pernyataan SELECT yang sama boleh menimbulkan cabaran.
Untuk menangani isu ini, pertimbangkan pertanyaan berikut:
SELECT Category FROM MonitoringJob ORDER BY CreationDate DESC
Pertanyaan ini mendapatkan semula data daripada jadual MonitoringJob, menyusun keputusan dalam susunan menurun mengikut lajur CreationDate. Hasil yang diinginkan ialah senarai kategori unik, diisih mengikut tarikh penciptaan terkini. Walau bagaimanapun, pertanyaan menghasilkan nilai pendua.
Satu percubaan untuk menyelesaikan isu ini mungkin menggunakan DISTINCT:
SELECT DISTINCT Category FROM MonitoringJob ORDER BY CreationDate DESC
Malangnya, pertanyaan ini gagal kerana DISTINCT tidak berfungsi dengan ORDER BY dalam satu kenyataan.
Untuk menyelesaikan isu ini, fungsi agregat dan klausa GROUP BY boleh digunakan:
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Pertanyaan ini:
Pendekatan ini menggabungkan kuasa DISTINCT untuk menghapuskan pendua dengan fungsi ORDER BY untuk mengisih data, memberikan anda hasil unik yang disusun mengikut susunan yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hasil Isih Unik Menggunakan DISTINCT dan ORDER BY dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!