如何获得这个复杂查询的总和?

寻找money_volume_sum的总和。 (我可以是一个单独的查询,因此可以将其用作变量来计算百分比。)

另外:有没有办法将其放入相同的查询中?

基于关于stackoverflow的原始问题:
SQL SELECT query with custom column, then summed and grouped by column

干杯!

    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

最佳答案

如果要在外部查询中使用百分比,则可以在MySQL中使用技巧来使用变量:

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;

关于mysql - 复杂派生表的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36346594/

10-13 08:07
查看更多