Problem beim ermitteln der Datensätze
Dirk
- php
Hallo liebe Experten,
ich habe verschiedene Ansätze ausprobiert und ein Problem zu lösen,bin jedoch nicht fündig geworden.
Als newbie weiß ich wie ich die Anzahl der Datensätze in einer Tabelle ermitteln kann-jetzt habe ich jedoch folgendes Problem:
In einer Spalte meiner Tabelle befinden sich Werte,die sich wiederholen.
Sagen wir mal die Spalte heißt "nummer" und ich möchte jetzt
1. ermitteln in wievielen Zeilen dieselbe Nummer vorkommt und
2. nach den häufigsten 10 in absteigender Form sortieren
Wie geht das am besten?
Grüße,
du könntest zB nach den "nummer"-werten sortieren
und bei der ausgabe die wiederholungen der werte
zählen (
if($x==$ausgabe){
$y[$p]++;
}else{
$p++; $y[$p]++; $x=$ausgabe;
}
).
so hast du die häufigket der werte in der tabelle.
wenn du zusützlich bei jeder $p-addition den neuen $ausgabe wert mitspeicherst hättest du die werte und die dazugehörige "trefferzahl"
MFG
bleicher
Hallo,
an diesen Ansatz habe ich auch schon gedacht,aber dabei treten folgende Probleme auf:
Ich kann beim select ja nicht irgendwie nach der Anzahl/Häufigkeit der betroffenen Zeilen sortieren,sondern halt nur nach der Spalte "nummer".
Bei der von dir vorgeschlagenen Ausgabe würde zwar das reine zählen klappen,aber halt nicht sortiert nach den häufigsten 10.
Würde diese Hürde überwunden ,könnte ich ja die 10 Ergebnisse wiederum mitsamt der Zählerwerte in einer anderen Tabelle einbauen und fertig wärs.
echo $begrüßung;
In einer Spalte meiner Tabelle befinden sich Werte,die sich wiederholen.
- ermitteln in wievielen Zeilen dieselbe Nummer vorkommt und
Gruppiere nach dieser Spalte und verwende eine Aggegatfunktion. COUNT(*) kennst du ja schon, das hilft hier auch.
- nach den häufigsten 10 in absteigender Form sortieren
Sortiere das Ergebnis nach der COUNT-Spalte.
echo "$verabschiedung $name";
Wie müßte denn der Syntax genau aussehen?
Das hier führt zu keinem Ergebnis:
"SELECT count(*) AS anzahl FROM alle2 GROUP BY nummer"
Hello,
Das hier führt zu keinem Ergebnis:
hmh, d.h.? KEIN Ergebnis? Merkwürden...
"SELECT count(*) AS anzahl FROM alle2 GROUP BY nummer"
na ja, so auf den ersten Blick:
SELECT gleicherwert, COUNT(gleicherwert) AS anzahl
FROM tabelle
GROUP BY gleicherwert
sollte eigentlich genau das gewünschte Ergebnis bringen
Füge noch ein ORDER BY anzahl DESC hinzu und du hast sie absteigend nach Häufigkeit sortiert.
MfG
Rouven
Hatte mich nur noch vertippt.
Jetzt klappts. Ich durchlaufe das Ergebnis und vergleiche nun auf identische Werte. Falls nicht,wird die letzte Zeile in eine temporäre Tabelle gespeichert-dort findet sich dann auch der Zähler.
Bei der Ausgabe greife ich dann auf diese Tabelle zurück und sortiere nach den Zähler :)