gpt4 book ai didi

mySQL 查询计数不同和百分比

转载 作者:行者123 更新时间:2023-11-29 00:16:24 29 4
gpt4 key购买 nike

我在创建一个查询时遇到问题,该查询将报告一个区域内按地区分组的用户的培训完成情况。对于一个培训类(class),报告需要针对每个地区显示

  • 分配类(class)的用户数
  • 完成类(class)的用户数
  • 完成类(class)的用户百分比

输出报告应该是这样的(没有句号):

学区…………已分配……已完成……%

阿肯色州......................20.................15.................75%

伊利诺伊州 .....................80................80 ..................... 100%

爱荷华州 .....................10 .....................8 ..................... .....80%

密歇根......................30.................20.................66%

这是我尝试使用的 SQL 查询

Select  mytable.district as District,

(Select Count(Distinct mytable.user_id)
From mytable
Where mytable.district = District AND
mytable.training_title = 'My Course') As 'Assigned',

(Select Count(Distinct mytable.user_id)
From mytable
Where mytable.training_status = "Completed" AND
mytable.district = District AND
mytable.training_title = 'My Course') as 'Completed',

Concat(Round(100 * (Select Count(Distinct mytable.user_id)
From mytable
Where mytable.training_status = "Completed" AND
mytable.district = District AND
mytable.training_title = 'My Course') / (Select Count(Distinct mytable.user_id)
From mytable
Where
mytable.district = District AND
mytable.training_title = 'My Course'),0 ),"%") as '%'

From mytable
Where mytable.region = 'Midwest'
Group by District

这样根本行不通。但是,如果我将 WHERE 子句中的地区值之一(例如阿肯色州)替换为“地区”,我可以获得该地区的正确值。但是我需要找到每个地区的所有地区并计算地区的值(value)。这只是我需要为其创建查询的区域之一。

两个关键问题:

  • 所有数据都存在于我数据库的一个表中。我已将其整合并从另一个数据库导入。
  • 数据包含重复项,因此我必须使用 Distinct 来消除结果中的重复项。

建议?预先感谢您的帮助!!!

最佳答案

据我所知,您可以根据需要对内容进行汇总,然后按 GROUP BY 分区。子查询将处理重复的行。

SELECT 
district,
COUNT(*) Assigned,
COUNT(CASE WHEN training_status='Completed' THEN 1 END) Completed,
CONCAT(COUNT(CASE WHEN training_status='Completed' THEN 1 END) /
COUNT(*) * 100, '%') `%`
FROM (
SELECT DISTINCT * FROM mytable
WHERE mytable.region = 'Midwest'
AND mytable.training_title = 'My Course') z
GROUP BY district;

An SQLfiddle to test with .

关于mySQL 查询计数不同和百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827812/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com