Ich habe die folgende Abfrage:Wie kann ich doppelte Werte in einer anderen Spalte ignorieren, wenn ich GROUP verwende?
SELECT
DATE(`timeStamp`),COUNT(*)
FROM
`wf`.sh`
WHERE
(DATE(`timeStamp`) >= curdate()- INTERVAL 31 DAY)
GROUP BY
DATE(`timeStamp`)
HAVING
COUNT(DATE(`timeStamp`)) > 0
ORDER BY
DATE(`timeStamp`) ASC;
Der Zweck dieser Abfrage ist die Menge des Benutzers online in meinem System pro Tag, innerhalb von einem Monat abgerufen werden.
Beispiel-Datensatz:
uID timeStamp
1 2016-11-28 00:27:01
1 2016-11-28 01:10:15
1234 2016-11-28 02:50:00
2 2016-11-28 06:11:09
47 2016-11-28 08:32:48
1246 2016-11-28 09:51:47
In seinem aktuellen Format, diese Abfrage gibt die Anzahl der Zeilen mit doppelten Terminen, zum Beispiel:
timeStamp COUNT(*)
2017-01-29 256
2017-01-30 224
2017-01-31 240
2017-02-01 95
2017-02-02 136
ich uID
ein anderes Feld haben; Ich muss meine Abfrage so ändern, dass GROUP
auch Zeilen mit einem doppelten uID
Feld für jeden Tag ignoriert. Ich habe versucht, ein anderes zu erstellen, aber es wurde ein Fehler ausgegeben, der "falsche GROUP BY-Klausel" (oder etwas in der Art).
Kann dies über reines MySQL geschehen?
Wäre schön, verwenden Sie den Grund für die * zwei * Drive-by-downvotes auf meine Frage zu kennen, die in den letzten paar Stunden aufgetreten sind .. – cybermonkey