sortieren mit mehreren werten

chrisi01

Romy lieb haben
ID: 101113
L
26 November 2008
2.854
238
hi

sry für die doofe Überschrift aber mir fällt gerade nix besseres ein

Die Frage ist irgendwie dämlich aber ich komme nicht drauf.

Nehmen wir an ich hab eine Tabelle wo die Spalte foo vor kommt.

in foo steht z.b.:

arzt
bauer
haus
arzt
nehmen
bauer
arzt

nun möchte ich sortieren und zwar soll als Ergebnis am Ende raus kommen:

3 Arzt
2 Bauer
1 nehmen
1 haus

also ich will wissen wie oft jeweils der gleiche Wert vor kommt und aufsteigend sortieren

wenn Werte gleich ist ist es mir egal wie er es anordnet muss in diesem Fall nix definiert werden kann er wahllos machen (es muss nur dort stehen).

Kann mich mal wer anstupsen wie das geht habe versucht zu googlen nur nach welchen begriffen googelt man da (selbe Problem mit der Klamm Sufu welche Begriffe?!)? :roll:

Danke schon mal

mfg

Chris
 
danke klappt ganz gut in phpmyadmin passt das Ergebnis.

Nur wenn ich es jetzt im Script durch ein mysql_fetch_object jage wie komme ich dann an die jeweilige Menge dran? Versucht habe ich es mit $row->count war mir aber irgendwie klar das dies nicht geht ;)

@Bububoomt
das mir dann doch selber aufgefallen ;) hab ja nur einen Anstoss benötigt *g*

edit: Damit ihr seht das ich nicht ganz doof bin

PHP:
SELECT count(*) AS wert, foo FROM statistik GROUP BY foo ORDER BY count(*) DESC
und dann im $row->wert die Zahl verwenden ;)

hat sich damit also erledigt ich danke euch

mfg

Chris
 
jetzt muss ich noch mal fragen:

PHP:
SELECT count(*) AS wert, sid FROM statistik WHERE count(*) > '1' GROUP BY sid ORDER BY id DESC
--> Invalid use of group function (hö?! hätte mich aber gewundert wenn es geht)

PHP:
SELECT count(*) AS wert, sid FROM statistik WHERE wert > '1' GROUP BY sid ORDER BY id DESC
--> Unknown column 'wert' in 'where clause' (irgendwie klar obwohl durch AS ja eigentlich erzeugt)

ich will halt nur die Datensätze anzeigen wo zusammengefasst mehr als 1 Wert vorhanden ist. Um beim Beispiel im ersten Beitrag zu bleiben, ich will ich folgende Ausgabe:

3 Arzt
2 Bauer

("haus" und "nehmen" gibt es ja nur einmal)

Aktuell habe ich sie so verwendet:

PHP:
SELECT count(*) AS wert, sid FROM statistik GROUP BY sid ORDER BY id DESC

und das ging aber eben auch die, die nur einmal vorkommen

Danke euch.

mfg

chris
 
(Erklärungen gespart und Lösungen gepostet, gerade nicht viel Zeit)

Code:
SELECT COUNT(*) AS wert, sid FROM statistik GROUP BY sid HAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC

Edit: du bist doof, kannst doch net in der Zeit posten, wo ich auf Antworten klicke und mir was zu Essen hole :biggrin:
 
Edit: du bist doof, kannst doch net in der Zeit posten, wo ich auf Antworten klicke und mir was zu Essen hole :biggrin:

Jawoll, schneller als ice, wollt ich immer schonmal sein:mrgreen:

Erklärung: Where wird beim selecten der einzelnen Zeilen ausgeführt, eine Group exsitiert noch nicht. Having wird erst beim fertig Resultset ausgeführt => es existieren die Groups
 
ihr dürft ruhig weiter streiten ;) will nur kurz sagen das es funktioniert :) Danke für die Hilfe und die Erklärung.

mfg

Chris