Gerhard: SQL + Funktion Min(...)

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

  1. 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

    1. yo,

      oder mit der ORDER BY-Klausel!   ;-)

      je nachdem wie das zweitkleinste gemeint ist wird es eventuell mit order by nicht funktionieren.

      Ilja

  2. 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

    1. 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

      1. 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

        1. 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

          --
          "Die SPD im Aufwind?"
  3. 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.