Brauche MySQL-Abfrage
Patrick
- datenbank
Hi,
ich bin verzweifelt auf der Suche nach einer Abfrage.
Uns zwar habe ich in meiner DB viele Datumsfelder (datetime) mit zugehörigen Usern (integer->userid).
Jetzt möchte ich rausbekommen, welche User sich in einem Zeitraum (1 Monat) min. an 8 verschiedenen Tagen eingeloggt haben.
Wie stell ich das an? Mein problem liegt halt in der Anzahl der Tage.
Danke
Patrick
Hallo,
Uns zwar habe ich in meiner DB viele Datumsfelder (datetime) mit zugehörigen Usern (integer->userid).
Jetzt möchte ich rausbekommen, welche User sich in einem Zeitraum (1 Monat) min. an 8 verschiedenen Tagen eingeloggt haben.
extrahiere aus dem Datumsfeld mit DATE() den Datumsanteil, zähle mit COUNT (DISTINCT) die verschiedenen Werte, schränke den Zeitraum mit der WHERE-Klausel ein, gruppiere nach der userid, reduziere die Ergebnismenge mit der HAVING-Klausel auf die gewünschten Datensätze.
Freundliche Grüße
Vinzenz
Hi,
habe es jetzt mal so versucht, bekomme aber leider nur 1 Datensatz zurück.
SELECT user
FROM login
WHERE date( datum )
BETWEEN '2009-05-01'
AND '2009-05-31'
having count(distinct(DATE(datum))) >= 8
Hat jemand noch eine Idee, was ich falsch mache?
Danke
Patrick
Hi,
habe es jetzt mal so versucht, bekomme aber leider nur 1 Datensatz zurück.
SELECT user
FROM login
WHERE date( datum )
BETWEEN '2009-05-01'
AND '2009-05-31'
having count(distinct(DATE(datum))) >= 8Hat jemand noch eine Idee, was ich falsch mache?
Abgesehen davon, dass du die dir angeratene Gruppierung ignoriert hast, steht das COUNT dort an einer ungünstigen Stelle - pack's in die Spaltenliste, und vergebe einen Alias, den du mittels HAVING überprüfst.
MfG ChrisB