2009-06-29 17 views
0

Diese SQL-AnweisungGruppierung Ergebnis nach Datum in mysql

SELECT `ip`, `when` FROM `metrics` WHERE `vidID` = '1' GROUP BY DATE('when') 

kehrt ein Ergebnis, auch wenn mehrere mit unterschiedlichen Terminen in der Tabelle vorhanden sind. Ich habe versucht, auch DATE_FORMAT zu verwenden. Mache ich etwas Dummes?

When ist eine Zeitstempelspalte mit voller Zeitmarke, einschließlich Stunden, Minuten und Sekunden. Ich versuche nur nach Ergebnissen nach Tag/Monat/Jahr zu gruppieren.

Antwort

4

Sieht aus, als ob Sie nach der Konstantenfolge 'when' anstelle des Felds when gruppieren.

Verwenden Sie stattdessen:

GROUP BY DATE(`when`) 

Klingt wie Sie die IP-Adressen für ein bestimmtes Datum zählen wollen:

SELECT COUNT(`ip`) AddressCount, `when` 
FROM `metrics` 
WHERE `vidID` = '1' 
GROUP BY DATE(`when`) 
+0

+1 gerade schlagen Sie mich zu ihm –

+0

danke für die Antwort, Welbog ... geht zu einem Syntaxfehler auf diesem – waxical

+0

@WiseDonkey: Care, um die Details des Syntaxfehlers zu geben? – Welbog

0

Üblicherweise wird GROUP BY in Verbindung mit einigen Aggregatfunktion verwendet (wie SUM, sagen wir), um das Ergebnis einer oder mehrerer Spalten zu berechnen. Was versuchst du hier zu erreichen? Willst du sortieren oder einfach nur eine Liste der IPs erhalten, die an welchen Daten Daten enthalten?

+0

Letzteres. Ich versuche nur, die Anzahl der Gesamtzahl der Datensätze für ein Datum für jetzt zu erhalten, und dann die Gesamtzahl der eindeutigen ips in einer anderen Abfrage später. – waxical