Pertanyaan SQL untuk Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama
Artikel ini menunjukkan cara untuk mengenal pasti pengguna yang membuat berbilang pembayaran pada hari yang sama menggunakan SQL, dengan pemurnian tambahan untuk mempertimbangkan hanya kod ZIP yang berbeza. Kami akan menggunakan jadual PAYMENT
dengan lajur untuk user_id
, account_no
, zip
dan date
.
Pertanyaan Awal (Tanpa Kod Pos Yang Jelas):
Pendekatan awal menggunakan klausa GROUP BY
dan HAVING
untuk mengira pembayaran:
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM PAYMENT GROUP BY user_id, account_no, date HAVING COUNT(*) > 1;</code>
Pertanyaan ini mengumpulkan pembayaran mengikut pengguna, nombor akaun dan tarikh. Fasal HAVING
menapis hasil untuk menunjukkan hanya pengguna dengan lebih daripada satu pembayaran pada hari tertentu menggunakan akaun yang sama.
Pertanyaan Yang Diperbaiki (Dengan Kod Pos Yang Berbeza):
Untuk memastikan hanya kod ZIP yang berbeza dipertimbangkan, subkueri diperkenalkan untuk memilih gabungan unik pengguna, akaun, ZIP dan tarikh sebelum mengumpulkan dan mengira:
<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 diperhalusi ini mula-mula mencipta satu set rekod pembayaran yang berbeza menggunakan subkueri (distinct_payments
). Kemudian, ia mengumpulkan rekod yang berbeza ini dan menggunakan klausa HAVING
untuk mengenal pasti pengguna dengan berbilang pembayaran pada hari yang sama, dengan mengambil kira hanya kod ZIP yang berbeza untuk setiap pembayaran. Ini memastikan bahawa pengguna dengan berbilang pembayaran ke akaun yang sama pada hari yang sama, tetapi dengan kod ZIP yang berbeza, tidak akan disertakan dalam keputusan.
Atas ialah kandungan terperinci Bagaimana Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!