mysql - 复杂派生表的 SUM

标签 mysql sql

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

查找 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 - 复杂派生表的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346594/

相关文章:

mysql - 使用 if 选择输出值的 SQL 字符串连接

php - 获取地理坐标附近的地点

sql - 事务处理 SQL : Display two SUM() from differents tables?

sql - 获取执行存储过程的用户名

mysql - 在 phpmyadmin 中仅将几个值设置为要枚举的域

MySQL - 非常复杂的随机行

php - mysql 选择多表 - 连接

mysql - 卸载nagios

java - 将文件保存到vaadin中的数据库

mysql - 选择两个不同行中具有一定值的所有零件号