SQL-Abfrage zur Identifizierung mehrerer Zahlungen
Datenbankabfragen sind für die Datenanalyse unerlässlich. Dieses Beispiel konzentriert sich auf die Tabelle PAYMENT
, die Benutzer-IDs, Kontonummern, Postleitzahlen und Zahlungsdaten enthält. Ziel ist es, Benutzer zu ermitteln, die am selben Tag mehrere Zahlungen mit derselben Kontonummer, aber unterschiedlichen Postleitzahlen getätigt haben.
Dies können wir mithilfe der HAVING
-Klausel von SQL erreichen, die gruppierte Ergebnisse filtert. Hier ist eine Abfrage, um dies zu erreichen:
<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>
Diese Abfrage verwendet zunächst eine Unterabfrage (distinct_payments
), um doppelte Einträge basierend auf user_id
, account_no
, zip
und date
zu entfernen. Die Hauptabfrage gruppiert dann die verbleibenden Datensätze nach user_id
, account_no
und date
und zählt die Zahlungen für jede Gruppe. Die HAVING
-Klausel stellt sicher, dass nur Gruppen mit mehr als einer Zahlung (d. h. mehrere Zahlungen aus verschiedenen Postleitzahlen am selben Tag) zurückgegeben werden. Die Spalte payment_count
zeigt die Anzahl der Zahlungen für jeden qualifizierten Benutzer.
Dieser Ansatz identifiziert effektiv verdächtige Aktivitäten, bei denen ein Benutzer möglicherweise mehrere Standorte für Transaktionen am selben Tag mit demselben Konto verwendet.
Das obige ist der detaillierte Inhalt vonWie finde ich Benutzer mit mehreren Zahlungen am selben Tag, die dieselbe Kontonummer und unterschiedliche Postleitzahlen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!