# Häufigkeit von Zahlen in SQL Datenbank, ermitteln



## secondface (24. Mai 2004)

Hi Leutz,

folgendes Problem:

Ich habe eine SQL Tabelle namens vote, in der Bewertungen von Usern gespeichert werden.

Der User kann zb. eine Webseite von 1 - 5 bewerten.
Die Werte stehen dann zb. so in der Tabelle vote.



> VoteID    VoteWert  ...->
> 1    --------------->              5
> 2    --------------->              3
> 3    --------------->              5
> ...



In der Beispiel Tabelle wurde 3x mit der 5 gevotet.
Wie kann ich mir die Zahl mit den meißten votes anzeigen lassen bzw. auslesen?

Zb.: wenn jetzt 50x mit der 5 gevotet wurde und 23x mit der 3, dann will ich mir nur die 5 ausgeben lassen (als Votewert) und dahinter die Anzahl der Votes (zb.: 50).
Weiß jetzt echt nicht wie ich die SQL Anfrage formulieren muss.

Danke für eure Hilfe
secondface


----------



## Gumbo (24. Mai 2004)

Die Abfrage sollte wie folgt aussehen:
	
	
	



```
SELECT
        COUNT(`VoteWert`) AS `anzahl`,
        `VoteWert`
  FROM
        `vote`
  GROUP BY
        `VoteWert`
  ORDER BY
        `anzahl` DESC
```


----------



## secondface (24. Mai 2004)

@Gumbo, erstmal Danke.
Wie kann ich es aber machen, das mir nur die Zahl mit den meißten votes angezeigt wird?
In dem Bsp. werden mir alle Zahlen mit allen votes angezeigt.

Ich habe das jetzt mal so gemacht

```
SELECT COUNT(VoteWert) AS Anzahl,VoteWert FROM vote GROUP BY VoteWert HAVING COUNT(VoteWert) >2 ORDER BY DESC
```

Da wird mir nur die 5 mit 3 votes angezeigt. So sollte es eigentlich werden. Das Problem hierbei ist aber, dass ich die Bedingung (*>2*) nicht direkt in die Abfrage schreiben kann. In dem Bsp wusste ich ja das für die 5 3x gevotet wurde.

Die Bedingung müsste sich irgendwie dynamisch ergeben, so das immer nur die Zahl mit der höchste Anzahl an Votes ausgegeben wird. Wenn natürlich 2 Zahlen die gleich hohe Anzahl haben, dann die 2 Zahlen.
Verstehste wie ich das meine?
Ich weiß nicht wie ich das mit der Bedingung hinbekomme.
Danke für Hilfe.
mfg
secondface


----------

