Matti Mäkitalo: /MySQL: Ergebnisse in Rechnung wiederverwenden

Beitrag lesen

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