Maison >base de données >tutoriel mysql >Comment trouver des paiements de compte en double dans SQL avec et sans filtrage de code postal ?

Comment trouver des paiements de compte en double dans SQL avec et sans filtrage de code postal ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-08 21:36:53651parcourir

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

Détection des paiements de compte en double dans les bases de données SQL

Ce guide montre comment utiliser SQL pour identifier les enregistrements de paiement en double pour un seul utilisateur, avec et sans prise en compte du code postal.

Identification des paiements en double (sans code postal)

La requête SQL suivante identifie efficacement les cas où un utilisateur a plusieurs paiements associés au même numéro de compte :

<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>

Cette requête regroupe les enregistrements de paiement par account_no, user_id et payment_date. La fonction COUNT(*) compte les paiements pour chaque groupe et la clause HAVING filtre les résultats, affichant uniquement les groupes avec plus d'un paiement (doublons).

Ajout du filtrage des codes postaux pour une précision améliorée

Pour garantir que seuls les paiements avec des codes postaux distincts soient considérés comme des doublons, nous modifions la requête :

<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>

Cette requête améliorée utilise une sous-requête (distinct_payments) pour sélectionner des combinaisons uniques de user_id, account_no, zip et payment_date. La requête principale regroupe et compte ensuite ces enregistrements distincts, identifiant les paiements en double uniquement lorsqu'ils impliquent des codes postaux différents. Cette approche permet une analyse plus précise des paiements en double.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn