ich eine Tabelle von Berichten, die diese relevanten Felder hat:Zählen Datensätze aus einer gruppierten Abfrage mit zusätzlichen Kriterien
user_id (int 11)
submitted_date (datetime)
approved_flag (shortint 1)
Es gibt mehrere Zeilen pro user_id
, einige mit approved_flag
= 0 und einige mit approved_flag
= 1 und jeweils mit einem einzigartigen submitted_date
.
Ich muss die genehmigten und nicht genehmigten Berichte zählen. Aber ich möchte nur den zuletzt übermittelten Bericht pro Benutzer zählen (zuletzt submitted_date
), unabhängig von approved_flag
.
Also, wenn gab es vier Datensätze wie folgt aus:
user_id, submitted_date, approved_flag 1, 2009-04-01 01:00, 1 1, 2009-04-01 02:00, 0 1, 2009-04-01 03:00, 1 (using this record) 2, 2009-04-02 01:00, 1 (using this record)
die Zählung würde 2 genehmigt und keine nicht genehmigten, und wenn wir hätten 1 genehmigt
user_id, submitted_date, approved_flag 1, 2009-04-01 01:00, 1 1, 2009-04-01 02:00, 0 1, 2009-04-01 03:00, 0 (using this record) 2, 2009-04-02 01:00, 0 2, 2009-04-02 02:00, 1 (using this record)
der Graf sein (user ID 2) und 1 nicht genehmigt (Benutzer ID 1).
Um noch einmal zusammenzufassen, weil es nicht einfach zu beschreiben ist: Ich möchte die Gesamtzahl der eindeutigen Benutzer in der Tabelle (unabhängig von # Zeilen pro Benutzer) und ich möchte es in "genehmigt" und "nicht." genehmigt 'basiert auf dem approved_flag
des letzten Berichts pro Benutzer.
Jede Hilfe wäre sehr dankbar, danke!
Ich verstehe richtig, dass Sie nie eine Anzahl höher als eins (pro Benutzer) haben würde? und dass Ihre genehmigten + nicht genehmigten Zählungen niemals höher als eins (pro Benutzer) sein würden? –