SQL-Abfragen zum Finden von Benutzern mit mehreren Zahlungen am selben Tag
In diesem Artikel wird gezeigt, wie Sie mit SQL Benutzer identifizieren, die mehrere Zahlungen am selben Tag getätigt haben, mit einer zusätzlichen Verfeinerung, um nur unterschiedliche Postleitzahlen zu berücksichtigen. Wir verwenden eine PAYMENT
-Tabelle mit Spalten für user_id
, account_no
, zip
und date
.
Erste Abfrage (ohne eindeutige Postleitzahl):
Der erste Ansatz verwendet eine GROUP BY
- und HAVING
-Klausel, um Zahlungen zu zählen:
<code class="language-sql">SELECT user_id, COUNT(*) AS payment_count FROM PAYMENT GROUP BY user_id, account_no, date HAVING COUNT(*) > 1;</code>
Diese Abfrage gruppiert Zahlungen nach Benutzer, Kontonummer und Datum. Die HAVING
-Klausel filtert die Ergebnisse, um nur Benutzer anzuzeigen, die an einem bestimmten Tag mehr als eine Zahlung über dasselbe Konto getätigt haben.
Verbesserte Abfrage (mit eindeutiger Postleitzahl):
Um sicherzustellen, dass nur unterschiedliche Postleitzahlen berücksichtigt werden, wird eine Unterabfrage eingeführt, um vor dem Gruppieren und Zählen eindeutige Kombinationen aus Benutzer, Konto, Postleitzahl und Datum auszuwählen:
<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 verfeinerte Abfrage erstellt zunächst mithilfe der Unterabfrage (distinct_payments
) einen eindeutigen Satz von Zahlungsdatensätzen. Anschließend gruppiert es diese unterschiedlichen Datensätze und wendet die HAVING
-Klausel an, um Benutzer mit mehreren Zahlungen am selben Tag zu identifizieren, wobei für jede Zahlung nur unterschiedliche Postleitzahlen berücksichtigt werden. Dadurch wird sichergestellt, dass ein Benutzer mit mehreren Zahlungen auf dasselbe Konto am selben Tag, aber mit unterschiedlichen Postleitzahlen, nicht in die Ergebnisse einbezogen wird.
Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von SQL Benutzer mit mehreren Zahlungen am selben Tag?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!