使用 SQL 找出相同帳戶每日多次付款的使用者
本指南示範如何識別在同一天使用相同帳號和不同郵遞區號進行多次付款的使用者。 我們將使用 PAYMENT
表,其中包含 user_id
、account_no
、zip
和 date
欄位。
初始 SQL 查詢:
此查詢標識每個帳戶每天進行多次付款的用戶:
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM PAYMENT GROUP BY account_no, user_id, date HAVING COUNT(*) > 1;</code>
這會按帳號、使用者 ID 和日期對付款進行分組,然後進行篩選以僅顯示具有多筆付款的群組。
增強的不同郵遞區號查詢:
為了確保僅識別具有多次付款和不同郵遞區號的用戶,我們使用子查詢:
<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>
此子查詢 (distinct_payments
) 首先選擇使用者、帳戶、郵遞區號和日期的唯一組合。然後,主查詢對該子集進行分組和過濾,保證只傳回具有多次付款和不同郵遞區號的記錄。 為了清楚起見,AS distinct_payments
子句為子查詢指派一個別名。
以上是如何使用 SQL 識別同一帳戶每日多次付款的使用者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!