Saya perlu menjalankan pernyataan pilih yang mengembalikan semua baris di mana nilai kolom tidak berbeda (mis. Alamat Email).
Misalnya, jika tabelnya terlihat seperti di bawah ini:
CustomerName EmailAddress
Aaron aaron@gmail.com
Christy aaron@gmail.com
Jason jason@gmail.com
Eric eric@gmail.com
John aaron@gmail.com
Saya perlu kueri untuk kembali:
Aaron aaron@gmail.com
Christy aaron@gmail.com
John aaron@gmail.com
Saya telah membaca banyak posting dan mencoba berbagai pertanyaan tanpa hasil. Kueri yang saya yakin harus berfungsi adalah di bawah ini. Dapatkah seseorang menyarankan alternatif atau memberi tahu saya apa yang mungkin salah dengan permintaan saya?
select EmailAddress, CustomerName from Customers
group by EmailAddress, CustomerName
having COUNT(distinct(EmailAddress)) > 1
sql
sql-server
sql-server-2008
Belalang
sumber
sumber
HAVING
sini alih-alih yang keduaSELECT...WHERE
menyebabkan ini menjadi permintaan tunggal, alih-alih opsi kedua yang mengeksekusiSELECT...WHERE
panggilan kedua itu berkali-kali. Lihat lebih lanjut di sini: stackoverflow.com/q/9253244/550975[EmailAddress] must appear in the GROUP BY clause or be used in an aggregate function
kesalahan terkenal . Apakah satu - satunya perbaikan - pengeditansql_mode
?[EmailAddress]
IS dalamGROUP BY
klausaHal yang salah dengan kueri Anda adalah bahwa Anda mengelompokkan berdasarkan email dan nama, yang membentuk grup dari setiap rangkaian email dan nama unik yang digabungkan menjadi satu dan karenanya
diperlakukan sebagai 3 kelompok yang berbeda, tetapi semua milik 1 kelompok tunggal.
Silakan gunakan kueri seperti yang diberikan di bawah ini:
sumber
Bagaimana tentang
sumber
sumber
Hanya untuk bersenang-senang, inilah cara lain:
sumber
Alih-alih menggunakan sub kueri di kondisi mana yang akan meningkatkan waktu kueri di mana catatan sangat besar.
Saya menyarankan untuk menggunakan Inner Join sebagai opsi yang lebih baik untuk masalah ini.
Mempertimbangkan tabel yang sama ini bisa memberikan hasil
Untuk hasil yang lebih baik, saya sarankan Anda menggunakan
CustomerID
atau bidang unik apa pun dari tabel Anda. DuplikasiCustomerName
dimungkinkan.sumber
Yah ada sedikit perubahan untuk menemukan baris yang tidak berbeda ..
sumber