首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算SQL中每种类型的百分比

如何计算SQL中每种类型的百分比
EN

Stack Overflow用户
提问于 2017-09-10 11:26:02
回答 1查看 190关注 0票数 0

我做了一些调查,但找不到一个类似我的问题.

我想建立一个函数来计算受过特定教育的人的百分比。例如,除了所有可能的教育(在我的表),有多少是飞行员,多少是工程师,等等。

我有两个表:表Users有一个表Education的外键。目标是返回一个表格,其中您已经说明了所有可能的教育和与之相关的人的百分比。

我拿到的号码是

代码语言:javascript
运行
复制
SELECT Educations.education, COUNT(Users.idEducation) AS numberOfEducations
FROM Educations
LEFT JOIN Users ON (Educations.idEducation= Users.idEducation)
GROUP BY Educations.education;

以及所有可能的教育的数量

代码语言:javascript
运行
复制
SELECT COUNT(idEducation) AS allTypes FROM Educations;

现在,我需要做的和所有方面都失败的是,计算每个教育百分比,并以以下形式输出:

代码语言:javascript
运行
复制
| Education | Percentage |
| Pilot     |     5%     |
| Engineer  |    10%     |
| Sales     |    25%     |
| Banker    |     8%     |
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-10 11:28:05

可以在大多数数据库中使用ANSI标准窗口函数:

代码语言:javascript
运行
复制
SELECT e.education, COUNT(u.idEducation) AS numberOfEducations,
       COUNT(u.idEducation)*1.0 / SUM(COUNT(u.idEducation)) OVER () as ratio
FROM Educations e LEFT JOIN
     Users u
     ON e.idEducation = u.idEducation)
GROUP BY e.education;

* 1.0是因为一些数据库进行整数除法--即1/2是0而不是0.5。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46140193

复制
相关文章

相似问题

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