SELECT教程#5中的Sqlzoo SELECT

use*_*665 5 sql select

我的问题是:

德国(人口8000万)是欧洲国家中人口最多的国家.奥地利(人口850万)占德国人口的11%.

显示欧洲各国的名称和人口.显示人口占德国人口的百分比.

我的答案:

SELECT name,CONCAT(ROUND(population/80000000,-2),'%')
FROM world
WHERE population = (SELECT population
                    FROM world
                      WHERE continent='Europe')
Run Code Online (Sandbox Code Playgroud)

我做错了什么?谢谢.

Don*_*sto 5

问题不完整,从这里开始

这就是答案

SELECT 
  name, 
  CONCAT(ROUND((population*100)/(SELECT population 
                                 FROM world WHERE name='Germany'), 0), '%')
FROM world
WHERE population IN (SELECT population
                     FROM world
                     WHERE continent='Europe')
Run Code Online (Sandbox Code Playgroud)

我想知道子问题,因为OP问题不清楚(至少对我来说).原因是"世界"表(顾名思义,我必须承认)包含所有世界国家,而我们只对欧洲国家感兴趣.此外,德国人口必须从数据库检索,因为它不是80.000.000; 如果您使用该号码,您将获得101%的德国人口.

  • SQL 的最后一部分 WHERE 人口 ... 是多余的。你可以只使用 WHERE continent = "Europe" 而不是那个 blob。 (9认同)