MY SQL - Auswahl 3 maximalste Werte

elvis_presley

Grünschnabel
Hallo, ich möchte aus einer Auswahl von x Preisen, die x höchsten bekommen. Also z.B. 7 Preise von 1 bis 7 Euro. Wenn ich die drei höchsten haben möchte wären das 7,6,5. Ich habe Erfahrung mit TERADATA und habe dort die Funktion 'RANK' mit der ich dies machen kann. Gibt es bei MYSQL eine ähnliche Funktion oder weiß jemand eine andere Lösung?
 
Hi!

Hiermit solltest Du, wenn Du tabellenname und spaltenname durch die entsprechenden Namen ersetzt, die 3 größten Werte erhalten. Mit asc werden die Datensätze absteigend sortiert und mit limit 3 werden nur die ersten 3 Datensätze ausgegeben:
Code:
select * from `tabellenname` order by `spaltenname` asc limit 3

redlama
 
Super danke. Werde es heute Abend probieren. Was wäre, wenn der der Wert drei nicht fest vorgegeben wäre sondern in einer Referenztabelle hinterlegt wäre, kann man anstatt 3 hartcodiert auch einen subselect verwenden oder joinen?
 
Also mit den Subselects ist das so eine Sache, ...
Soweit ich weiß, gibt es keine Subselects in MySQL.
Aber Du könntest natürlich den Wert für das Limit einbinden, via join oder mit einer Variable aus einem Script oder ähnlichem.

redlama
 
via join, das reicht mir ja schon. Super, danke, du hast mich gerettet..., ich kann von Berufswegen her leider nur TERADATA und da gibt es so komfortable Funktionalitäten nicht... nochmals Danke.
 
Zurück