PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann man das in SQL machen?


Gast
2010-08-29, 23:08:12
Hallo,

Mal angenommen ich habe in einer Tabelle zwei Spalten:
"S1" und "S2".
Ich gehe davon aus, dass S2 eindeutig ist.

Ich möchte mir jetzt den Eintrag aus der Tabelle raussuchen, dessen S2-Wert der maximalste in der Tabelle ist. Ich möchte jedoch den S1-Wert ausgeben.

Die einzige möglichkeit die mir einfällt wäre eine Verschachtelte SQL Abfrage, wo ich im inneren erstmal nur MAX(S2) selecte, und die äußere sucht sich dann den dazugehörigen S1 Eintrag raus.

Geht das auch besser?

creave
2010-08-29, 23:13:44
Was besseres als "SELECT S1 FROM tabelle WHERE S2 = ( SELECT max(S2) FROM tabelle )" + evt. LIMIT 1 fällt mir spontan auch nicht ein, sehe aber kein Problem dabei.

edit: vorausgesetzt, es sind subqueries erlaubt.

Binary Outlaw
2010-08-29, 23:16:10
SELECT S1 AS "Name" FROM "Tabelle" WHERE S2 = (SELECT MAX(S2) FROM "Tabelle")

Denke das sollte funktionieren, kanns aber im Moment nicht austesten.

EDIT: Da war wer schneller. :(

Neomi
2010-08-29, 23:23:19
Hab länger keine SQL-Abfrage mehr geschrieben (daher ohne Garantie für Korrektheit), aber das hier müßte auch funktionieren (ungetestet):

SELECT S1 FROM Tabelle ORDER BY S2 DESC LIMIT 1

Binary Outlaw
2010-08-29, 23:25:41
Warum einfach, wenns auch schwer geht. :freak:
Jo sollte auch funktionieren.;)

creave
2010-08-29, 23:33:34
(Was dann allerdings ggf. mehrfache Results ausschließt, falls diese gewünscht sind.)

Binary Outlaw
2010-08-29, 23:41:32
Richtig, kommt auf den Hintergrund an. Muss der TO nun entscheiden, welche Abfrage für seinen Zweck die passendere ist.