Requêtes SQL pour rechercher des utilisateurs avec plusieurs paiements le même jour
Cet article montre comment identifier les utilisateurs qui ont effectué plusieurs paiements le même jour à l'aide de SQL, avec un raffinement supplémentaire pour ne prendre en compte que les codes postaux distincts. Nous utiliserons un tableau PAYMENT
avec des colonnes pour user_id
, account_no
, zip
et date
.
Requête initiale (sans code postal distinct) :
L'approche initiale utilise une clause GROUP BY
et HAVING
pour comptabiliser les paiements :
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM PAYMENT GROUP BY user_id, account_no, date HAVING COUNT(*) > 1;</code>
Cette requête regroupe les paiements par utilisateur, numéro de compte et date. La clause HAVING
filtre les résultats pour afficher uniquement les utilisateurs ayant effectué plus d'un paiement un jour donné en utilisant le même compte.
Requête améliorée (avec code postal distinct) :
Pour garantir que seuls les codes postaux distincts sont pris en compte, une sous-requête est introduite pour sélectionner des combinaisons uniques d'utilisateur, de compte, de code postal et de date avant de regrouper et de compter :
<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 requête affinée crée d'abord un ensemble distinct d'enregistrements de paiement à l'aide de la sous-requête (distinct_payments
). Ensuite, il regroupe ces enregistrements distincts et applique la clause HAVING
pour identifier les utilisateurs ayant effectué plusieurs paiements le même jour, en considérant uniquement les codes postaux distincts pour chaque paiement. Cela garantit qu'un utilisateur ayant effectué plusieurs paiements sur le même compte le même jour, mais avec des codes postaux différents, ne sera pas inclus dans les résultats.
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!