sql - 如何检索维度的百分比份额
问题描述
我正在尝试从我的数据集中检索女性员工比例第二高的国家。
这些是表中相关的维度:
表名是“员工”国家(varchar)男性(布尔)女性(布尔)
解决方案
这取决于数据库。假设您使用的是 MySQL(最常用的 DB)布尔值相当于 tinyint(1)。这使得整数算术无需强制转换或 if then else 逻辑成为可能:
SELECT country, (sum(male)/ sum(female)) as ratio FROM employee GROUP BY country order by ratio desc limit 2;
然后选择第二个结果(如果您真的对最高值不感兴趣,则使用 Limit 1, 1)。
如果您需要在使用 PostGres 时进行投射,您可以在这里查看: postgresql - sql - count of 'true' values
推荐阅读
- r - How to extract data from complex function in R
- c# - Changes in Android 11, no longer able to provide mock location
- go - Substitute an interface for another one
- c# - How do I build up towards a velocity by using add force?
- javascript - Firebase security rules for anonymous users
- assembly - How do I generate an assembly listing in a VSCode build using gcc?
- rust - 如何从 `self` 设置关联常量(在 rust 中)
- c# - Why can't my bot dm users a welcome message? (Discord.net C#)
- docker - docker swarm - file.yml
- google-sheets - Google sheets wildcard isn't working in my formula (FILTER)