Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengalih Keluar Baris Pendua Semasa Mengekalkan Pesanan dalam Pernyataan SELECT SQL?

Bagaimanakah Saya Boleh Mengalih Keluar Baris Pendua Semasa Mengekalkan Pesanan dalam Pernyataan SELECT SQL?

DDD
Lepaskan: 2025-01-07 09:21:42
asal
627 orang telah melayarinya

How Can I Remove Duplicate Rows While Maintaining Order in a SQL SELECT Statement?

Menggunakan DISTINCT dan ORDER BY dalam Pernyataan SELECT Sama

Selepas melaksanakan pernyataan SELECT mengambil semula lajur Kategori dari jadual MonitoringJob dan memesan hasil oleh lajur CreationDate dalam susunan menurun, pangkalan data mungkin mengembalikan nilai pendua. Untuk menghapuskan pendua sambil mengekalkan susunan yang ditentukan, kata kunci DISTINCT boleh digunakan. Walau bagaimanapun, menggunakan DISTINCT sahaja mungkin tidak mencukupi.

Dalam contoh yang disediakan, menggunakan kata kunci DISTINCT dengan sendirinya tidak akan menyelesaikan isu kerana klausa ORDER BY bergantung pada lajur CreationDate, yang mengandungi nilai pendua. Untuk menangani perkara ini, fungsi agregat seperti MAX() boleh digabungkan dengan kata kunci DISTINCT untuk mengisih hasil berdasarkan lajur tertentu sementara masih mengecualikan pendua. Selain itu, klausa GROUP BY diperlukan untuk mencipta kategori unik berdasarkan lajur yang digunakan dalam operasi DISTINCT.

Penyelesaian yang sesuai ialah:

SELECT DISTINCT Category, MAX(CreationDate)
FROM MonitoringJob
GROUP BY Category
ORDER BY MAX(CreationDate) DESC, Category
Salin selepas log masuk

Pernyataan yang diubah suai ini akan memastikan pendua dialih keluar sambil mengekalkan susunan yang dikehendaki dengan mengisih pada lajur MAX(CreationDate) dan kemudian mengikut Kategori. Hasilnya, output yang diingini akan diperoleh, menyenaraikan kategori berbeza dalam susunan menurun berdasarkan nilai CreationDate terkini mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Baris Pendua Semasa Mengekalkan Pesanan dalam Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan