Rumah > Soal Jawab > teks badan
Saya ada lembaran pembayaran. Ia mempunyai lajur bernama user_id dan payment_type. Untuk setiap pembayaran, pengguna boleh mempunyai berbilang jenis pembayaran. Saya ingin mencari pengguna yang hanya menggunakan satu jenis_bayaran sepanjang hayat mereka.
Izinkan saya menerangkannya dengan jelas dengan contoh: Katakan saya mempunyai data berikut:
user_id payment_type 1 UPI 1 NB 2 UPI 2 UPI
Untuk di atas, saya hanya mahu user_id
2 sebagai output kerana untuk kedua-dua pembayaran ini, ia hanya menggunakan 1 jenis_bayaran.
Ada sesiapa boleh tolong?
P粉3373859222024-02-04 21:29:33
Sesuatu HAVING dan COUNT yang mudah sepatutnya berjaya:
select user_id from my_table group by user_id having count(distinct payment_type)=1;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65f673a7df3ac0ee18c13105a2ec17ad一个>
Jika anda ingin memasukkan payment_type dalam set keputusan, gunakan:
select my.user_id,my.payment_type from my_table my inner join ( select user_id from my_table group by user_id having count(distinct payment_type)=1 ) as t1 on t1.user_id=my.user_id group by my.user_id,my.payment_type ;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=cc4704c9e51d01e4e8fc087702edbe6e 一个>