Pemilihan DISTINCT untuk Lajur Tertentu
Walaupun kata kunci DISTINCT lazimnya menapis seluruh baris dengan sebarang pendua, mungkin terdapat keadaan yang anda memerlukan yang berbeza nilai hanya untuk lajur tertentu. Mari kita terokai cara untuk mencapai perkara ini dalam konteks pertanyaan yang mendapatkan semula data daripada jadual Produk.
Pertanyaan asal mendapatkan semula semua lajur daripada jadual Produk:
SELECT ID, Email, ProductName, ProductModel FROM Products
Objektifnya adalah untuk ubah suai pertanyaan untuk mengembalikan alamat E-mel yang unik, membenarkan pendua dalam lajur lain. Untuk mencapai matlamat ini, kami boleh menggunakan fungsi ROW_NUMBER() bersama partition tetingkap melalui E-mel.
SELECT * FROM ( SELECT ID, Email, ProductName, ProductModel, ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn FROM Products ) a WHERE rn = 1
Begini cara pertanyaan dipertingkat ini beroperasi:
Akibatnya, pertanyaan yang diubah suai ini mendapatkan semula semua lajur daripada jadual Produk, memastikan tiada alamat E-mel pendua hadir.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai Berbeza daripada Lajur Khusus dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!