Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Nilai Berbeza daripada Lajur Khusus dalam SQL?

Bagaimana untuk Memilih Nilai Berbeza daripada Lajur Khusus dalam SQL?

DDD
Lepaskan: 2024-12-30 06:35:10
asal
312 orang telah melayarinya

How to Select Distinct Values from Specific Columns in SQL?

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
Salin selepas log masuk

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
Salin selepas log masuk

Begini cara pertanyaan dipertingkat ini beroperasi:

  1. Fungsi ROW_NUMBER() memperuntukkan indeks baris unik, 'rn', dalam setiap partition E-mel dalam tertib menurun ID.
  2. Subkueri menjana jadual perantaraan dengan semua lajur daripada pertanyaan asal, bersama dengan indeks baris 'rn'.
  3. Pertanyaan luar kemudian menapis hasil subkueri untuk memasukkan baris sahaja di mana 'rn' adalah sama dengan 1, dengan berkesan mengembalikan baris terbaharu untuk setiap unik E-mel.

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!

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