mysql - 除以汇总值

标签 mysql rollup

我有这段代码,它总结了员工的小时数并使用 rollup 来获得总小时数:

SELECT IFNULL(users, 'Total') AS Employee, 
SUM(actual) AS Amount

FROM table1

WHERE name = "ProjectName"

GROUP BY users
WITH ROLLUP

Employee  |  Amount
    A     |   15
    B     |   10
    C     |   10
  Total   |   35

我想为我的第三列(百分比)做的是将总和(实际)除以总值以获得百分比。 但对于该百分比列,我不需要获取总百分比。

总值并不恒定为 35。

Employee  |  Amount | Percent
    A     |   15    |  42.85
    B     |   10    |  28.57
    C     |   10    |  28.57
  Total   |   35    |

我该怎么做? 这是 sqlfiddle:http://sqlfiddle.com/#!2/4543b/5

最佳答案

这按预期工作:

SET @project_name = 'ProjectName';

SELECT IFNULL(users, 'Total') AS Employee, SUM(actual) AS Amount,
    IF(ISNULL(users), '', TRUNCATE(SUM(actual) / sum_table.amount_sum * 100, 2)
    ) AS Percent
    FROM Table1
    INNER JOIN (
        SELECT SUM(actual) AS amount_sum
            FROM Table1
            WHERE name = @project_name
    ) AS sum_table
    WHERE name = @project_name
    GROUP BY users
    WITH ROLLUP;

演示 @ SQL Fiddle

关于mysql - 除以汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870016/

相关文章:

php - mysql 的 Sonar 配置失败

mysql - 基于 WHERE 的多个聚合查询

mysql - Grails 2.4.3 & MySQL & grails.project.fork = false

java - MySQL FIFO 固定最大尺寸

mysql - 如何在 MySQL 中使用 GROUP BY WITH ROLLUP 时填充空白

Mysql逐行聚合和

mysql - ROLLUP 返回错误值

javascript - 将 npm 模块集成到一个普通的 Javascript 应用程序中,不知道如何修复错误

node.js - 如何将rollup中的所有 Node 模块设置为外部?

mysql - 我需要使用 group by 和 rollup 进行查询方面的帮助