SQL + Funktion Min(...)
Gerhard
- datenbank
Hallo Allerseits!
Mit der SQL-Funktion Min(...) bekomme ich ja bekanntlich den kleinsten eintrag eines attributes in einer ganzen tabelle.
ich möchte aber nicht das kleinste, sondern immer das ZWEITKLEINSTE wissen.
Gibts da irgendwie eine möglichkeit, dem interpreter das mitzuteilen?
Danke im Voraus
lg Gerhard
Hi,
Mit der SQL-Funktion Min(...) bekomme ich ja bekanntlich den kleinsten eintrag eines attributes in einer ganzen tabelle.
ich möchte aber nicht das kleinste, sondern immer das ZWEITKLEINSTE wissen.Gibts da irgendwie eine möglichkeit, dem interpreter das mitzuteilen?
ja, mit SQL und z.B. Sub-Selects oder mit der ORDER BY-Klausel! ;-)
Gruss,
Ludger
yo,
oder mit der ORDER BY-Klausel! ;-)
je nachdem wie das zweitkleinste gemeint ist wird es eventuell mit order by nicht funktionieren.
Ilja
Hallo Allerseits!
Mit der SQL-Funktion Min(...) bekomme ich ja bekanntlich den kleinsten eintrag eines attributes in einer ganzen tabelle.
ich möchte aber nicht das kleinste, sondern immer das ZWEITKLEINSTE wissen.Gibts da irgendwie eine möglichkeit, dem interpreter das mitzuteilen?
Danke im Voraus
lg Gerhard
Hallo Gerhard,
was ist, wenn in dieser Liste alle den gleichen Eintrag aufweisen?
Dann ist es Essig in Sachen Suche nach den zweitkleinsten Eintrag.
Grüße,
Wolfram
Hi,
was ist, wenn in dieser Liste alle den gleichen Eintrag aufweisen?
Dann ist es Essig in Sachen Suche nach den zweitkleinsten Eintrag.
der ist dann NULL.
Gruss,
Ludger
yo,
der ist dann NULL.
nicht unbedinkt. erstens ist das guppieren überflüssig, wenn man schon mit limit arbeitet. zweitens muss man zu aller erst klar stellen, was der zweitkleinste bedeutet.
a) immer der zweite datensatz einer reichenfolge, der bei gleichheit der werte dann zufällig wäre
b) oder aber der zweitkleinste wert meint, den zweiten wert der vorkommt.
Ilja
Hi,
der ist dann NULL.
nicht unbedinkt. erstens ist das guppieren überflüssig, wenn man schon mit limit arbeitet. zweitens muss man zu aller erst klar stellen, was der zweitkleinste bedeutet.
a) immer der zweite datensatz einer reichenfolge, der bei gleichheit der werte dann zufällig wäre
b) oder aber der zweitkleinste wert meint, den zweiten wert der vorkommt.
ja, superrichtig.
(Wolframs Argumentation haette uebrigens auch dann "vortrefflich" gegriffen bei einer Datensatzmenge, deren auszuwertenden Datenfelder alle den Wert NULL haben, und der "Anforderungslage MIN()". Dann kriegt man mit der Aggregatfunktion MIN() eben auch NULL.)
Gruss,
Ludger
Mit der SQL-Funktion Min(...) bekomme ich ja bekanntlich den kleinsten eintrag eines attributes in einer ganzen tabelle.
ich möchte aber nicht das kleinste, sondern immer das ZWEITKLEINSTE wissen.Gibts da irgendwie eine möglichkeit, dem interpreter das mitzuteilen?
bei mysql gehts wohl nur so:
select wert from tabelle
group by wert
order wert asc
limit 1,1
wenns dann aber keinen zweitkleinsten wert gibt, gibts auch nichts zurück. daher num_rows befragen.