Rumah >pangkalan data >tutorial mysql >Bagaimana Mencari Baris Pendua dengan Nilai Berbeza dalam Lajur Tertentu?
Memilih Baris Pendua dengan Nilai Lajur Divergen
Pertanyaan pangkalan data ini bertujuan untuk mengenal pasti baris pendua berdasarkan lajur tertentu sambil mengabaikan nilai lain lajur. Pertimbangkan senario berikut:
ARIDNR | LIEFNR |
---|---|
1 | A |
2 | A |
3 | A |
1 | B |
2 | B |
Objektifnya adalah untuk memilih nilai ARIDNR yang muncul lebih daripada sekali dengan nilai LIEFNR yang berbeza.
Penyelesaian
Untuk mencapai matlamat ini, kita boleh menggunakan perkara berikut pertanyaan:
SELECT * FROM Table WHERE ARIDNR IN ( SELECT ARIDNR FROM Table GROUP BY ARIDNR HAVING COUNT(DISTINCT LIEFNR) > 1 )
Pertanyaan ini menggunakan subkueri bersarang untuk mengenal pasti nilai ARIDNR yang memenuhi kriteria yang ditentukan. Subkueri mengumpulkan baris mengikut ARIDNR dan menggunakan fungsi COUNT(DISTINCT LIEFNR), yang mengira bilangan nilai LIEFNR unik yang dikaitkan dengan setiap ARIDNR. Jika kiraan melebihi 1, ARIDNR ditambahkan pada jadual sementara.
Pertanyaan utama kemudian memilih semua baris daripada jadual asal yang mana nilai ARIDNR sepadan dengan yang dikenal pasti oleh subkueri. Ini menghasilkan output yang diingini:
ARIDNR | LIEFNR |
---|---|
1 | A |
1 | B |
2 | A |
2 | B |
Kaedah ini berkesan menangkap baris pendua dengan nilai LIEFNR yang berbeza-beza, memenuhi keperluan awal.
Atas ialah kandungan terperinci Bagaimana Mencari Baris Pendua dengan Nilai Berbeza dalam Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!