/MySQL: Ergebnisse in Rechnung wiederverwenden
AllesMeins
- datenbank
Hi,
wie kann ich Informationen einer SELECT Abfrage direkt in MySQL mehrfach verwenden? Also ich will die Anzahl von zwei Spalten bilden, diese als Ergebnis zurück liefern und außerdem noch den Quotienten aus den beiden Spalten bilden. Zur Zeit mache ich sowas wie:
SELECT COUNT(DISTINCT s1), COUNT(s2), COUNT(DISTINCT s1)/COUNT(s2) FROM tabelle
Leider treibt mir das die Laufzeit ziemlich in die Höhe, da die Tabelle eine gewisse Größe erreicht hat. Es wäre also sinnvoll die Ergebnisse wiederzuverwenden. Leider weiß ich nicht wie - mit
SELECT COUNT(DISTINCT s1) as wert1, COUNT(s2) as wert2, wert1/wert2 FROM tabelle
funktioniert es leider nicht. Wie also komme ich um diese unnötigen Doppel-Abfragen herum?
Hi,
SELECT COUNT(DISTINCT s1), COUNT(s2), COUNT(DISTINCT s1)/COUNT(s2) FROM tabelle
Leider treibt mir das die Laufzeit ziemlich in die Höhe, da die Tabelle eine gewisse Größe erreicht hat. Es wäre also sinnvoll die Ergebnisse wiederzuverwenden. Leider weiß ich nicht wie - mit
SELECT COUNT(DISTINCT s1) as wert1, COUNT(s2) as wert2, wert1/wert2 FROM tabelle
funktioniert es leider nicht. Wie also komme ich um diese unnötigen Doppel-Abfragen herum?
Entweder programmseitig, wo die Daten weiterverarbeitet werden, oder mit einer temporären Tabelle:
SELECT
t.*,
t.wert1/t.wert2 AS wert1_durch_wert2
FROM
(SELECT
COUNT(DISTINCT s1) AS wert1,
COUNT(s2) AS wert2
FROM tabelle
) AS t
Bis die Tage,
Matti
Dankeschön, genau das habe ich gesucht