-2

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

这些是表中相关的维度:

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

4

2 回答 2

0

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

于 2020-10-27T20:01:25.783 回答
0
SELECT Country
FROM employee
GROUP BY Country -- get aggregate per Country
ORDER BY SUM(Female) / SUM(Male) DESC -- Higher percentage goes up
LIMIT 1, 1 -- after 1st, next 1 row(s)
;
于 2020-10-27T19:52:20.443 回答