MySQL - Wert der am meißten vorkommt
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anschauung
antworten
anzahl
bestimmten frage
code
datensatz
ergebnis
folgende meldung
folgende tabelle
frage
limit
machen
notation
ordern
quatsch
spalte
spalten
tat
versuch
-
hey,
ich habe folgende tabelle
results id |question|result
alles sind bigint felder
wie kann ich jetzt die anzahl der spalten rausfinden bzw. auch deren wert , welcher an häufigsten in der spalte result drin steht. weiterhin muss question noch mit einer bestimmten zahl übereinstimmen.
noch mal zur anschauung
1|1|10 2|1|12 3|2|10 4|1|10
wie bekomme ich jetzt für frage eins das 10 am häufigsten angewählt wurde und auch wie oft.
ich hoffe ihr versteht was ich meine
mfg andre -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also da machst du am besten ein Grouping auf die question Spalte, danach ein Count der Resultspalte und dann ein Max auf dem Ergebnis.
-
versuch es mal mit dieser SQL-Abfrage:
select question, result, count(result) as anzahl from results group by question,count(result) order by count(result) desc
Der erste Datensatz gibt Dir die Frage mit den meisten Antworten. Du kannst bei der Abfrage natürlich auch jeweils selektieren, dass Du nur die Antworten zu einer bestimmten Frage (mit $frage=1) ausgewertet haben möchtest:
select question, result, count(result) as anzahl from results where question=$frage group by count(result) order by count(result) desc
Beitrag zuletzt geändert: 26.1.2010 18:05:42 von tuswb -
tuswb schrieb: versuch es mal mit dieser SQL-Abfrage:
select question, result, count(result) as anzahl from results group by question,count(result) order by count(result) desc
sieht cool aus nur 2 fragen
1. was macht "anzahl" darin??
2. das sieht nach mysqli aus was ich nicht nutzte... oder?
und ich bekomme folgende meldung:
Invalid use of group function
mfg andre -
SELECT result, COUNT(result) as num FROM results GROUP BY result HAVING question = ... ORDER BY num DESC LIMIT 1
@tuswb: Würde deins gehen? Zumindest ist mir die Notation GROUP BY question, count(result) neu. -
@nikic auch deins sieht sehr interessant aus, geht leider aber genausoweinig...
Unknown column 'question' in 'having clause'
mfg andre -
Sorry, habe mich in der Tat etwas vertippt: group by count(result) ist natürlich Quatsch!
so sollte es gehen
select result ,count(result) as num from results where question= ... group by result ORDER BY num DESC LIMIT 1
-
tuswb schrieb: Sorry, habe mich in der Tat etwas vertippt: group by count(result) ist natürlich Quatsch!
so sollte es gehen
select result ,count(result) as num from results where question= ... group by result ORDER BY num DESC LIMIT 1
super vielen dank, das geht
mfg andre -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage