Rumah >pangkalan data >tutorial mysql >Bagaimana Mengenalpasti Pengguna dengan Pelbagai Pembayaran Harian pada Akaun Yang Sama Menggunakan SQL?
Menggunakan SQL untuk Mencari Pengguna dengan Berbilang Pembayaran Harian pada Akaun Yang Sama
Panduan ini menunjukkan cara mengenal pasti pengguna yang telah membuat lebih daripada satu pembayaran pada hari yang sama, menggunakan nombor akaun yang sama dan dengan kod ZIP yang berbeza. Kami akan menggunakan jadual PAYMENT
, yang mengandungi lajur user_id
, account_no
, zip
dan date
.
Pertanyaan SQL Awal:
Pertanyaan ini mengenal pasti pengguna dengan berbilang pembayaran setiap hari, setiap akaun:
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM PAYMENT GROUP BY account_no, user_id, date HAVING COUNT(*) > 1;</code>
Ini mengumpulkan pembayaran mengikut nombor akaun, ID pengguna dan tarikh, kemudian menapis untuk menunjukkan hanya kumpulan dengan lebih daripada satu pembayaran.
Pertanyaan Dipertingkat untuk Kod Pos Berbeza:
Untuk memastikan bahawa hanya pengguna dengan berbilang pembayaran dan kod ZIP yang berbeza dikenal pasti, kami menggunakan subquery:
<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>
Subkueri ini (distinct_payments
) mula-mula memilih gabungan unik pengguna, akaun, poskod dan tarikh. Pertanyaan utama kemudian mengumpulkan dan menapis subset ini, menjamin bahawa hanya rekod dengan berbilang pembayaran dan kod ZIP yang berbeza dikembalikan. Klausa AS distinct_payments
memberikan alias kepada subkueri untuk kejelasan.
Atas ialah kandungan terperinci Bagaimana Mengenalpasti Pengguna dengan Pelbagai Pembayaran Harian pada Akaun Yang Sama Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!