Rumah >pangkalan data >tutorial mysql >Bagaimana Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama Menggunakan Nombor Akaun Yang Sama dan Kod Pos yang Berbeza?
Pertanyaan SQL untuk Mengenalpasti Pelbagai Pembayaran
Pertanyaan pangkalan data adalah penting untuk analisis data. Contoh ini memfokuskan pada jadual PAYMENT
, yang mengandungi ID pengguna, nombor akaun, poskod dan tarikh pembayaran. Matlamatnya adalah untuk menentukan pengguna yang membuat berbilang pembayaran pada hari yang sama menggunakan nombor akaun yang sama tetapi daripada kod ZIP yang berbeza.
Kita boleh mencapai ini menggunakan klausa HAVING
SQL, yang menapis hasil terkumpul. Berikut ialah pertanyaan untuk mencapai ini:
<code class="language-sql">SELECT user_id, account_no, date, COUNT(*) AS payment_count FROM (SELECT DISTINCT user_id, account_no, zip, date FROM payment) AS distinct_payments GROUP BY user_id, account_no, date HAVING COUNT(*) > 1;</code>
Pertanyaan ini mula-mula menggunakan subkueri (distinct_payments
) untuk menghapuskan entri pendua berdasarkan user_id
, account_no
, zip
dan date
. Pertanyaan utama kemudian mengumpulkan rekod yang tinggal mengikut user_id
, account_no
dan date
, mengira bayaran untuk setiap kumpulan. Fasal HAVING
memastikan hanya kumpulan dengan lebih daripada satu pembayaran (menunjukkan berbilang pembayaran daripada kod ZIP berbeza pada hari yang sama) dikembalikan. Lajur payment_count
menunjukkan bilangan pembayaran untuk setiap pengguna yang layak.
Pendekatan ini berkesan mengenal pasti aktiviti yang mencurigakan di mana pengguna mungkin menggunakan berbilang lokasi untuk transaksi pada hari yang sama dengan akaun yang sama.
Atas ialah kandungan terperinci Bagaimana Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama Menggunakan Nombor Akaun Yang Sama dan Kod Pos yang Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!