Requête SQL pour détecter les utilisateurs avec plusieurs paiements le jour même à partir de différents codes postaux
Cette requête SQL analyse une table PAYMENTS
(contenant les identifiants utilisateur, les numéros de compte, les codes postaux et les dates de paiement) pour identifier les utilisateurs qui ont effectué plusieurs paiements le même jour, chacun utilisant le même numéro de compte mais provenant de codes postaux différents. codes.
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM (SELECT DISTINCT user_id, account_no, zip, payment_date FROM PAYMENTS ) AS daily_payments GROUP BY user_id, account_no, payment_date HAVING COUNT(*) > 1;</code>
Explication :
La requête utilise une sous-requête pour sélectionner initialement des enregistrements de paiement uniques en fonction de user_id
, account_no
, zip
et payment_date
. Cela élimine les entrées redondantes. La requête externe regroupe ensuite ces enregistrements uniques par user_id
, account_no
et payment_date
pour compter les paiements pour chaque combinaison unique. Enfin, la clause HAVING
filtre les résultats, ne conservant que les utilisateurs ayant effectué plus d'un paiement un jour donné en utilisant le même numéro de compte. Le résultat affiche le user_id
et le nombre de paiements éligibles.
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!