SQL ausgabe von 3 rows ohne limit
Benjamin
- datenbank
Hi
ich habe ein problem habe eine aufgabe gestellt bekommen die ich nicht lösen kann :/
in meiner datenbank ist eine tabele "Stadt" mit der spalte "einwohner":
Stadt
---------
einwohner
---------
2345
1233
2311
821
442
3122
nun soll ich die 3 höchsten werte ausgeben und darf kein LIMIT benutzen
mit limit währe es einfach aber es "soll" noch anders gehen einer eine idee wie?
nun soll ich die 3 höchsten werte ausgeben und darf kein LIMIT benutzen
Du könntest dreimal mit MAX() auf die Tabelle gehen, dabei sind aber Unterabfragen erforderlich.
Sup!
Wuuaaah... das ist schon alles so lange her... aber vielleicht kann man alle die Einwohnerzahlen ausgeben, für die gilt, dass die Zahl der grösseren Einwohnerzahlen <=2 ist?
Also in meinem Phantasie-SQL-Dialekt:
Select * from Einwohnerzahlen into var where (count (Einwohnerzahlen > var) < 2);
Gruesse,
Bio
Sup!
Wuuaaah... das ist schon alles so lange her... aber vielleicht kann man alle die Einwohnerzahlen ausgeben, für die gilt, dass die Zahl der grösseren Einwohnerzahlen <=2 ist?
Also in meinem Phantasie-SQL-Dialekt:
Select * from Einwohnerzahlen into var where (count (Einwohnerzahlen > var) < 2);
SELECT
DF AS Vergleichwert
FROM
DT
WHERE
(
(
SELECT
COUNT(*)
FROM
DT
WHERE
(
DF > Vergleichswert
)
)
=
2
)
Geht sowas? Kriegt man so den dritten Datensatz? ;)
also das muss rein sql sein .. wenn ich das in phpmyadmin eingebe soll der mir 3 zeilen anzeigen :) .. und thx ich probier das mal aus
HAB GESCHAFT .. Big THX :)
habs gerde mal in phpmyadmin getestet und es funktioniert !
SELECT Einwohner AS var
FROM Stadt
WHERE (
(
SELECT COUNT( * )
FROM Stadt
WHERE (
Einwohner > var
)
) =2
)
OR (
(
SELECT COUNT( * )
FROM Stadt
WHERE (
Einwohner > var
)
) =1
)
OR (
(
SELECT COUNT( * )
FROM Stadt
WHERE (
Einwohner > var
)
) =0
)
vllt gibs ne elegantere schreibweise dafür ? :P
yo,
vllt gibs ne elegantere schreibweise dafür ? :P
versuch mal folgendes:
SELECT Einwohner AS var
FROM Stadt
WHERE
(
SELECT COUNT(*)
FROM Stadt
WHERE Einwohner > var
) IN (0,1,2)
;
btw. als Bonus der aufgabe kannst du ihnen ja sagen, dass die abfrage nur funktioniert, wenn es bei den ersten drei keine städte mit gleicher einweohnerzahl gibt.
Ilja
jo thx :)
geht und ... sieht auch wesendlich besser aus :)
Sup!
Also mit Oracle ging das irgendwie damals. Da ging so einiges.
Gruesse,
Bio