SQL Abfrage - Häufigkeit ermitteln

Post Reply
Message
Author
ElBlues
Posts: 127
Joined: 25. Mar 2008 12:50
Contact:

SQL Abfrage - Häufigkeit ermitteln

#1 Post by ElBlues »

Hi,

ich benötige mal ein paar Denkanstöße zu einer SQL-Abfrage. Ich habe eine Datenbank, in der kommen bestimmte Zahlenwerte mitunter mehrfach vor. Die Zahlenwerte selber sind nicht vorherzusagen und aus einem so großen Wertebereich, dass man nicht alle möglichen Werte durchprobieren muss.

Von den mehrfach vorkommenden Werten will ich jetzt wissen, welche 10 Werte am häufigsten vorkommen und wie häufig das jeweils der Fall ist.

Hat jemand einen Tipp wie sowas zu realisieren ist?
http://www.kaufkauf.net - nie wieder Einkäufe vergessen!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Ausschließlich mit SQL geht das nicht.

Also erst per SQL sortieren, dann die Ausgabe in "uniq -c" reinstopfen, dann das Ergebnis mit "sort" sortieren.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

ElBlues
Posts: 127
Joined: 25. Mar 2008 12:50
Contact:

#3 Post by ElBlues »

Hm, sowas wollte ich eigentlich vermeiden, da die Menge an Daten nicht eben klein ist. Und jedes mal einen kompletten Abzug der Tabelle zu ziehen (auch wenn es nur eine Spalte ist), ist leider doch etwas rechenintensiv...
http://www.kaufkauf.net - nie wieder Einkäufe vergessen!

feldsee
Posts: 100
Joined: 12. Feb 2001 15:50
Location: Mainz
Contact:

#4 Post by feldsee »

Code: Select all

SELECT Count(Dingsda.derBetreffendeZahlenwert) AS Anzahl, Dingsda.derBetreffendeZahlenwert FROM Dingsda
GROUP BY Dingsda.derBetreffendeZahlenwert
ORDER BY Count(Dingsda.derBetreffendeZahlenwert) DESCENDING
Wenn Dein SQL-Server jetzt noch ein

Code: Select all

SELECT TOP 10 
unterstützt, wird es perfekt ...
Du hast keine Chance, aber nutze sie!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#5 Post by Janka »

Stimmt, man kann ja mit GROUP BY die Tabelle selektiv kippen. Danke Feldsee, wieder was gelernt.

SELECT TOP 10 kann man übrigens mit der "LIMIT"-Direktive erreichen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply