Tj: SQL - Maximum einer Zeile über alle spalten

Hallo ihr,

Vielleicht kann mir jemand von euch bei einem SQL-Problem weiterhelfen.

Ich habe rund 20 Spalten mit jeweils den prozentualen Wahlergebnissen von Parteien nach Wahllokalen (Zeilen) geordnet.
Wie kann ich denn nun mit SQL den jeweiligen Wahlsieger (größter Wert pro Zeile über alle Spalten) auslesen?

Ich habe es mit Statements wie Select wahllokal where max(spd,cdu,...) versucht - ohne erfolg.

Wäre euch super dankbar für Hilfe!
Vielen dank schon mal.
Tj

  1. Hi!

    Ich habe rund 20 Spalten mit jeweils den prozentualen Wahlergebnissen von Parteien nach Wahllokalen (Zeilen) geordnet.
    Wie kann ich denn nun mit SQL den jeweiligen Wahlsieger (größter Wert pro Zeile über alle Spalten) auslesen?

    Umständlich, nur äußerst umständlich. Gleiche Daten gehören "untereinander", nicht "nebeneinander". Denn dann kann man die üblichen SQL-Mittel anwenden, wie Gruppierungen, Aggregatfunktionen und Sortierung.

    Lo!

    1. Umständlich, nur äußerst umständlich. Gleiche Daten gehören "untereinander", nicht "nebeneinander". Denn dann kann man die üblichen SQL-Mittel anwenden, wie Gruppierungen, Aggregatfunktionen und Sortierung.

      Hey vielen dank für eure antworten. Leider liegen mir die daten nur in dieser ordnung vor. Wie würdest du diesen umständlichen weg angehen?

      Vielen dank und gruß
      Tj

      1. Hi!

        Leider liegen mir die daten nur in dieser ordnung vor. Wie würdest du diesen umständlichen weg angehen?

        Siehe Matti, GREATEST() geht, aber dem musst du jede Spalte einzeln angeben.

        Lo!

        1. Hello,

          Leider liegen mir die daten nur in dieser ordnung vor. Wie würdest du diesen umständlichen weg angehen?

          Siehe Matti, GREATEST() geht, aber dem musst du jede Spalte einzeln angeben.

          Die Anzahl der Spalten wird bei einer Wahl ja begrenzt sein, während die Anzahl der Zwischenergebnisse (als Zeilen) sicherlich vorher nicht bekannt sein wird.

          Er sollte nur das Verhalten des Systems bei NULL in einer Spalte berücksichtigen und ggf. noch im Statement durch ein if() auf jede Spalte abfangen.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
  2. Hi,

    Ich habe rund 20 Spalten mit jeweils den prozentualen Wahlergebnissen von Parteien nach Wahllokalen (Zeilen) geordnet.
    Wie kann ich denn nun mit SQL den jeweiligen Wahlsieger (größter Wert pro Zeile über alle Spalten) auslesen?

    Die Funktion, um aus mehreren Spalten den größten Wert herauszufiltern, lautet z.B. bei MySQL GREATEST(). Als Parameter musst du ihm alle gewünschten Spalten übergeben.

    Bis die Tage,
    Matti