SQL Query gesucht: MAX für mehrere Spalten

dickerbert

Seriöser Troll
Registriert
23. März 2007
Reaktionspunkte
869
Ich suche ein SQL-Statement mit dem ich für mehrere Spalten den Maximalwert ausgegeben bekomme. Jeweils Spalte für Spalte, nicht den Maximalwert aus mehreren Spalten.

Beispiel:
Es soll jeweils für Spalte 1 bis 3 der Maximalwert berechnet und in einer Tabelle ausgegeben werden. Da ich bei SELECT MAX(...) aber nur eine Spalte zur Maximumsberechnung eingeben kann, komme ich hier nicht weiter.
Screen_Toleranzgruppen2.JPG


Eine Überlegung war, das ganze durch mehrere VIEWS zu lösen, die im zweiten Schritt wieder zusammen gefügt werden. Allerdings fehlt für den JOIN die Verknüpfung (ON):
CREATE VIEW 'MAX_1' AS (SELECT MAX(Spalte_1) FROM Datenbank_1);
CREATE VIEW
'MAX_2' AS (SELECT MAX(Spalte_1) FROM Datenbank_2);
CREATE VIEW 'MAX_3' AS (SELECT MAX(Spalte_1) FROM Datenbank_3);

SELECT MAX_1
LEFT JOIN MAX_2 ON (???)
LEFT JOIN MAX_3 ON (???);

Weiteres Problem an dieser Variante ist, dass es bei der echten Datenbank nicht um drei Spalten geht, sondern um 20. Das macht den Query nicht gerade performant, wenn 20 Views gebildet werden nur um sie als zusammengefügte Tabelle anzeigen zu lassen.

Hat jemand eine Idee, wie ich einfacher (oder überhaupt) zur Ausgabetabelle komme?
 

Anhänge

  • Screen_Toleranzgruppen2.JPG
    Screen_Toleranzgruppen2.JPG
    26,5 KB · Aufrufe: 1.943
SELECT x.spalte_1, y.spalte_2, z.spalte_3
FROM
(SELECT MAX(Spalte_1) spalte_1 FROM Datenbank_1) x,
(SELECT MAX(Spalte_2) spalte_2 FROM Datenbank_1) y,
(SELECT MAX(Spalte_3) spalte_3 FROM Datenbank_1) z
 
Manchmal sind es die einfachen Dinge an denen man sich die Zähne ausbeißt. Der letzte Query ist ja ein Traum! Kurz und knapp und genau das was ich wollte. Vielen Dank!
 
Zurück