Seite 1 von 1

2 mal group by, aber wie genau?

Verfasst: 21.04.2007 21:27
von roderiganuras
Habe drei Spalten: >> Domain, Datum und IP
Hier werden Referer gespeichert.
Und ich möchte wissen, wie viele User das waren.
Nun ist das Problem, daß ein User ja auch Faken kann und dann 100 mal hintereinander in der Tabelle auftaucht.
Ich müßte also zwei mal GROUP BY verwenden.
Das erste mal eleminiert die doppelten Einträge, das 2. nutze ich zum Zählen.

aber ich weiß nicht genau wie, man könnte es auch mit php machen und die vorhandenen einträge in ein array einlesen, aber ich will es nur mit mysql machen, kann mir jemand sagen wie genau es geht?
vielen dank im vorraus

Verfasst: 21.04.2007 21:35
von oxpus
Zweimal GROUP BY auf eine Tabelle geht nicht, da ja immer nur ein Ergebnis herauskommt und daher auch nur einmal zusammengefasst, also gruppiert werden kann.

Wie willst Du denn aber die User zählen?
Unabhängig der vorhandenen restlichen Daten?

Dann führe doch eine 2. Abfrage aus, die mit count(distinct user_id) die User-Daten zusammenzählt...

Verfasst: 21.04.2007 21:53
von roderiganuras
also geht es nicht in einer abfrage, ne

Verfasst: 21.04.2007 22:05
von Pyramide
Was willst du denn genau als Ergebnis haben? Die Gesamtanzahl Einträge, aber jede IP soll nur einmal gezählt werden? Dann ist das von oxpus vorgeschlagene COUNT(DISTINCT spalte) die Lösung. Ansonsten beschreib mal genauer, was du eigentlich willst.