首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用子查询和可能的联接获得总体百分比

问使用子查询和可能的联接获得总体百分比
EN

Stack Overflow用户
提问于 2018-07-26 03:09:37
回答 1查看 310关注 0票数 0

我正在学习MySQL,我想让两个查询除以每个查询中的和(Populationcount)值,得出单独列中列出的百分比(作为十进制值)。目标是使用我将在下面列出的第一个查询作为子查询,以显示每个年龄组所获得的每种类型教育的百分比。

作为子查询,我需要使用的查询是:按年龄从educational_attainment组选择age、SUM(populationcount);人口计数只生成三个不同的值,这些值将是新查询中的除数值。

我需要使用值的另一个查询是:选择和(人口计数)、年龄、educational_attainment组的教育程度(按年龄)、教育程度()这里的结果显示了12个不同的人口计数值,每个年龄组内的每个教育级别都有一个。

我的查询有点接近于这样:SELECT A.EducationalAttainment,A.age,A educational_attainment A JOIN (按年龄选择age,sum(populationcount) age_populationcount从educational_attainment组按年龄计算)B ON A.age=B.age;不幸的是,它为每个年龄组提供了太多的结果,计算值大于0,而不是小于0的十进制值。

我希望我解释得够清楚。如果有人对我做错了什么有洞察力,我会非常感谢你的意见!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 03:44:37

您应该使用左联接,如下所示:

代码语言:javascript
复制
SELECT 
    A.age, B.educationalattainment, 
    (IFNULL(B.pop_count, 0)/A.pop_count)*100 percentage_pop
FROM
(SELECT 
    age, SUM(populationcount) pop_count 
 FROM educational_attainment 
 GROUP BY age) A
LEFT JOIN 
(SELECT 
    sum(populationcount) pop_count, age, educationalattainment 
 FROM educational_attainment 
 GROUP BY age, educationalattainment) B
ON A.age=B.age;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51530432

复制
相关文章

相似问题

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