【发布时间】:2020-10-30 20:32:37
【问题描述】:
希望获得每个“task_types”的百分比值。看了很多例子,但不能完全弄清楚。我尝试将下面的语句放入另一个 SELECT 语句中尝试划分,但它总是会出现 SQL 错误。有什么想法吗?
这是 SQL:
SELECT t.task_type, (SUM(trktm.time_end) - SUM(trktm.time_start)) as thetime
FROM
task as t, track_time as trktm
WHERE
trktm.time_start BETWEEN 1593932400 AND 1594450800
AND
trktm.time_end BETWEEN 1593932400 AND 1594450800
AND
t.user_id = 10
GROUP BY t.task_type
ORDER BY FIELD(t.task_type, 'Unassigned') DESC, t.task_type ASC
这是输出:
task_type | thetime
- - - - - - - - - - - - - -
Unassigned | 1041078
Bug Fixes | 694052
Design | 347026
但这是我想要达到的目标:
task_type | thetime | thepercent
- - - - - - - - - - - - - - - - - - - - -
Unassigned | 1041078 | 70.4
Bug Fixes | 694052 | 19.6
Design | 347026 | 10.0
【问题讨论】:
-
请解释预期的
thepercent列背后的背景。 -
指定 MySQL 版本。这对你的任务很重要。 但这是我想要实现的目标在单独的子查询或 CTE 中计算总和并除以。
-
请提及总数以找出百分比,例如 --- select (thetime * 100 / (total No of Employe)) as Percentage
-
我发现很明显需要总时间的百分比
标签: mysql sql sum percentage