Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama Menggunakan SQL?

Bagaimana Mencari Pengguna dengan Berbilang Pembayaran pada Hari Yang Sama Menggunakan SQL?

Patricia Arquette
Lepaskan: 2025-01-08 21:50:54
asal
404 orang telah melayarinya

How to Find Users with Multiple Payments on the Same Day Using SQL?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan