首頁 > 資料庫 > mysql教程 > 如何在使用和不使用郵遞區號過濾的 SQL 中尋找重複的帳戶付款?

如何在使用和不使用郵遞區號過濾的 SQL 中尋找重複的帳戶付款?

Susan Sarandon
發布: 2025-01-08 21:36:53
原創
647 人瀏覽過

How to Identify Duplicate Account Payments in SQL (With and Without ZIP Code Filtering)

偵測 SQL 資料庫中的重複帳戶付款

本指南示範如何使用 SQL 找出單一使用者的重複付款記錄,無論是否考慮郵遞區號。

辨識重複付款(沒有郵遞區號)

以下 SQL 查詢可有效辨識使用者有多筆付款與相同帳號關聯的實例:

<code class="language-sql">SELECT
  user_id,
  COUNT(*) AS payment_count
FROM
  PAYMENT
GROUP BY
  account_no,
  user_id,
  payment_date
HAVING
  payment_count > 1;</code>
登入後複製

此查詢依 account_nouser_idpayment_date 將付款記錄分組。 COUNT(*) 函數統計每個組別的付款情況,HAVING 子句過濾結果,僅顯示具有多於一筆付款(重複)的群組。

添加郵遞區號過濾以提高準確性

為了確保只有具有不同郵遞區號的付款才會被視為重複,我們修改查詢:

<code class="language-sql">SELECT
  user_id,
  account_no,
  payment_date,
  COUNT(*) AS payment_count
FROM
  (
    SELECT DISTINCT
      user_id,
      account_no,
      zip,
      payment_date
    FROM
      payment
  ) AS distinct_payments
GROUP BY
  user_id,
  account_no,
  payment_date
HAVING
  payment_count > 1;</code>
登入後複製

此改進的查詢利用子查詢 (distinct_payments) 來選擇 user_idaccount_nozippayment_date 的唯一組合。然後,主查詢將這些不同的記錄分組和計數,僅在涉及不同郵遞區號時識別重複付款。 這種方法可以更精確地分析重複付款。

以上是如何在使用和不使用郵遞區號過濾的 SQL 中尋找重複的帳戶付款?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板