Maison >base de données >tutoriel mysql >Comment identifier les utilisateurs avec plusieurs paiements quotidiens sur le même compte à l'aide de SQL ?

Comment identifier les utilisateurs avec plusieurs paiements quotidiens sur le même compte à l'aide de SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-08 21:52:52414parcourir

How to Identify Users with Multiple Daily Payments on the Same Account Using SQL?

Utiliser SQL pour rechercher des utilisateurs avec plusieurs paiements quotidiens sur le même compte

Ce guide montre comment identifier les utilisateurs qui ont effectué plus d'un paiement le même jour, en utilisant le même numéro de compte et avec des codes postaux différents. Nous utiliserons le tableau PAYMENT, contenant les colonnes user_id, account_no, zip et date.

Requête SQL initiale :

Cette requête identifie les utilisateurs ayant plusieurs paiements par jour et par compte :

<code class="language-sql">SELECT
  user_id,
  COUNT(*) AS payment_count
FROM
  PAYMENT
GROUP BY
  account_no,
  user_id,
  date
HAVING
  COUNT(*) > 1;</code>

Cela regroupe les paiements par numéro de compte, identifiant d'utilisateur et date, puis filtre pour afficher uniquement les groupes avec plus d'un paiement.

Requête améliorée pour les codes postaux distincts :

Pour garantir que seuls les utilisateurs ayant plusieurs paiements et codes postaux distincts sont identifiés, nous utilisons une sous-requête :

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

Cette sous-requête (distinct_payments) sélectionne d'abord des combinaisons uniques d'utilisateur, de compte, de code postal et de date. La requête principale regroupe et filtre ensuite ce sous-ensemble, garantissant que seuls les enregistrements comportant plusieurs paiements et des codes postaux distincts sont renvoyés. La clause AS distinct_payments attribue un alias à la sous-requête pour plus de clarté.

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