ホームページ >データベース >mysql チュートリアル >同じ口座番号と異なる郵便番号を使用して、同日に複数の支払いを行うユーザーを見つける方法は?
複数の支払いを識別するための SQL クエリ
データベース クエリはデータ分析に不可欠です。 この例では、ユーザー ID、口座番号、郵便番号、支払日を含む PAYMENT
テーブルに焦点を当てています。目的は、同じ日に同じ口座番号を使用して異なる郵便番号から複数回支払いを行ったユーザーを特定することです。
これは、グループ化された結果をフィルタリングする SQL の HAVING
句を使用して実現できます。 これを実現するためのクエリは次のとおりです:
<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
) を使用して、user_id
、account_no
、zip
、および date
に基づいて重複エントリを削除します。次に、メイン クエリは残りのレコードを user_id
、account_no
、date
ごとにグループ化し、グループごとに支払いをカウントします。 HAVING
句により、複数の支払いがあるグループ (同じ日に異なる郵便番号からの複数の支払いがあることを示します) のみが返されることが保証されます。 payment_count
列には、対象となる各ユーザーの支払い回数が表示されます。
このアプローチは、ユーザーが同じ日に同じアカウントで複数の場所を取引に使用している可能性がある不審なアクティビティを効果的に特定します。
以上が同じ口座番号と異なる郵便番号を使用して、同日に複数の支払いを行うユーザーを見つける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。