【发布时间】:2020-03-21 12:47:04
【问题描述】:
我在在线学习网站的项目中遇到了所需查询的问题。拥有一个如下所示的数据库:
我需要执行以下查询:
返回一个 SQL 查询字符串,该字符串将查找一个国家/地区拥有的体育项目 赢得奖牌。它应该包括奖牌的数量,别名为'count', 以及这项运动在这个国家的胜利中所占的百分比, 别名为“百分比”。可选择按指定方向的给定字段排序。
我已经解决了过滤部分。对于第一部分,给定一个国家“挪威”,我有:
SELECT sport, count(*) as count
FROM GOLDMEDAL
WHERE COUNTRY = "Norway" GROUP BY SPORT
我不知道如何编码百分比部分。我知道我需要以某种方式对每项运动的总行数求和然后计算,但我在子查询方面遇到了麻烦。这是我试过的一个,它不起作用:
SELECT SPORT, COUNT(*) as count,
(COUNT(*)*100)/(SELECT SUM(COUNT(*))
FROM GOLDMEDAL
WHERE COUNTRY = "Norway"
GROUP BY SPORT)
FROM GOLDMEDAL
WHERE COUNTRY = "Norway"
GROUP BY SPORT;
编辑:解决了。
SELECT SPORT,
COUNT(*),
COUNT(*)*100/(SELECT COUNT(*)
FROM GOLDMEDAL
WHERE COUNTRY = 'Norway')
FROM GOLDMEDAL
WHERE COUNTRY = 'Norway'
GROUP BY SPORT;
我无法通过统计挪威所在的每一行来判断,它拿回了该国为每项运动赢得的所有奖牌。还是谢谢!
【问题讨论】: