2016-04-01 11 views
0

Wie bekomme ich die Summe dieser komplexen Abfrage?Summe der komplexen abgeleiteten Tabelle

Auf der Suche nach der Summe von money_volume_sum. (Ich kann eine separate Abfrage sein, damit ich sie als Variable verwenden kann, um Prozentsätze zu berechnen.)

Auch: Gibt es eine Möglichkeit, dies in derselben Abfrage zu setzen?

von dieser ursprünglichen Frage auf Stackoverflow Basierend: SQL SELECT query with custom column, then summed and grouped by column

Prost!

SELECT SUM(money_volume) AS money_volume_sum, 
    exchange   
    FROM (
     SELECT k.exchange, y.close * y.volume AS money_volume 
     FROM symbols k 
     JOIN stocks y ON k.id = y.id 
     WHERE y.t = '20160323' 
     ORDER BY money_volume DESC 
    ) t 
    GROUP BY exchange 
    ORDER BY money_volume_sum DESC 
+1

Was Sie versuchen zu tun? Probendaten und gewünschte Ergebnisse helfen wirklich. Und warum funktioniert die ursprüngliche Antwort (die Sie akzeptiert haben) nicht? –

Antwort

0

Wenn Sie den Prozentsatz in der äußeren Abfrage möchten, können Sie einen Trick in MySQL verwenden Variablen verwenden:

SELECT exchange, SUM(money_volume) AS money_volume_sum, @s as total_sum 
FROM (SELECT k.exchange, y.close * y.volume AS money_volume, 
      (@s := @s + y.close * y.volume) as cumesum 
     FROM symbols k JOIN 
      stocks 
      y ON k.id = y.id CROSS JOIN 
      (SELECT @s := 0) params 
     WHERE y.t = '20160323' 
    ) t 
GROUP BY exchange 
ORDER BY money_volume_sum DESC; 
+0

Danke schön Trick. Ich werde versuchen, es zu studieren, um herauszufinden, warum es funktioniert hat, lol. – Aoi

Verwandte Themen