首页 > 解决方案 > 如何检索维度的百分比份额

问题描述

我正在尝试从我的数据集中检索女性员工比例第二高的国家。

这些是表中相关的维度:

表名是“员工”国家(varchar)男性(布尔)女性(布尔)

标签: sql

解决方案


这取决于数据库。假设您使用的是 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


推荐阅读