SQL Anfaengerfrage

11/02/2011 - 10:45 von Nicole Wagner | Report spam
Hallo User,


ich habe eine SQL Anfaengerfrage, bei der ich nicht sicher bin, womit
ich sie am besten loese: Sort, Group, Having, First 3, eine Procedur?

Ich moechte dies tun:

- eine select Abfrage
- deren Ergebnis soll nach Kriterium 1 gelistet werden
- innerhalb jeder einzelnen Kriterium-1-Gruppe will ich die 3 maximalen
Werte des jeweiligen Kriterium-2.

Relevant ist, dass das Ergebnis keine Aggregatfunktion sein soll, die
mir z.B. eine Zusammenfassung gibt, sondern die komplette Tabelle. Es
soll also etwa so aussehen.

"Var":
Blusen: Select-Ergebnis
Farbe: Kriterium-1
Preis: Krietrium-2

Output:
Blusen gelb 30 uvam
Blusen gelb 20 uvam
Blusen gelb 10 uvam

Blusen blau 80 uvam
Blusen blau 50 uvam
Blusen blau 30 uvam

Alle Blusen < die 3 Maximalpreise pro Farbe brauche ich nicht.


Nicole
 

Lesen sie die antworten

#1 Thomas G. Liesner
11/02/2011 - 16:50 | Warnen spam
Nicole Wagner schrieb:
Relevant ist, dass das Ergebnis keine Aggregatfunktion sein soll, die
mir z.B. eine Zusammenfassung gibt, sondern die komplette Tabelle. Es
soll also etwa so aussehen.

"Var":
Blusen: Select-Ergebnis
Farbe: Kriterium-1
Preis: Krietrium-2

Output:
Blusen gelb 30 uvam
Blusen gelb 20 uvam
Blusen gelb 10 uvam

Blusen blau 80 uvam
Blusen blau 50 uvam
Blusen blau 30 uvam

Alle Blusen < die 3 Maximalpreise pro Farbe brauche ich nicht.



Ungetestet, bzgl. des limit ggf. Anpassung an konkrete DB nötig:

Select * from blusen bl
where id in
(select id from blusen where farbe=bl.farbe
order by preis desc limit 3)
order by farbe, preis desc

So long,
Thomas G. Liesner

Ähnliche fragen