kostenloser Webspace werbefrei: lima-city


MySQL - Wert der am meißten vorkommt

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a************n

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mastersofpuppets

    mastersofpuppets hat kostenlosen Webspace.

    Also da machst du am besten ein Grouping auf die question Spalte, danach ein Count der Resultspalte und dann ein Max auf dem Ergebnis.
  4. 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
  5. Autor dieses Themas

    a************n

    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
  6. 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.
  7. Autor dieses Themas

    a************n

    @nikic auch deins sieht sehr interessant aus, geht leider aber genausoweinig...

    Unknown column 'question' in 'having clause'

    mfg andre
  8. 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

    ;-)
  9. Autor dieses Themas

    a************n

    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
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!