首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQL中计算百分比

在SQL中计算百分比
EN

Stack Overflow用户
提问于 2015-07-14 03:55:41
回答 3查看 162关注 0票数 0

我正在尝试在我的应用程序中获得一个项目的完成百分比。百分比将由插件显示,但是该插件需要SQL命令来运行查询和计算。

基本上,一个项目会有一个分配给用户的里程碑。每个里程碑都将有一个字段将其标记为完成。

里程碑和与此里程碑相关的字段(里程碑ID、状态、到期日等)都写入此表: eba_proj_status_ms。状态包括以下值:已分配、正在进行、已完成。

我想要的插件显示的是,有多少里程碑被标记为“完成”的特定项目的百分比。因此,一旦所有里程碑都被标记为完成,插件应该会显示100%。因为它是针对特定项目的,所以我知道需要合并的where子句。我只需要帮助计算百分比的基础上有多少个“完成”的项目。

我没有开发人员的背景,因为我使用SQL平台来构建此应用程序。任何帮助都会很棒,谢谢!

EN

回答 3

Stack Overflow用户

发布于 2015-07-14 04:11:26

这里有一个尝试:

代码语言:javascript
运行
复制
select 100.0*count(case when status = 'Completed' then 1 end) 
     / count(1) as pctComplete
from eba_proj_status_ms     

与@Sam cd类似,但没有子选择

票数 1
EN

Stack Overflow用户

发布于 2015-07-14 04:04:04

您没有指定您正在使用哪种风格的SQL。这是针对T-SQL的。

一种又快又脏的方法是声明2个变量来获取已完成任务的数量,然后获取总任务数。然后选择已完成/总计。这将给你一个小数格式(0.50而不是50% -如果你需要返回50而不是0.50,你可以乘以100 )

代码语言:javascript
运行
复制
DECLARE @total  INT
DECLARE @completed INT

SELECT @total = count(*) FROM eba_proj_status_ms

SELECT @completed = count(*) FROM eba_proj_status_ms WHERE [status] = 'Completed'

SELECT @completed / CAST(@total AS float)
票数 0
EN

Stack Overflow用户

发布于 2015-07-14 04:06:29

基本上就是@Tingo所说的,但没有变量:

代码语言:javascript
运行
复制
select 
((select COUNT(*) from eba_proj_status_ms WHERE [status] = 'Completed') /
COUNT(*) as PctComplete) * 100
from eba_proj_status_ms 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31392271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档