今日SQL练习2018-11-26

--1、列出每個國家的名字 name,當中人口 population 是高於俄羅斯'Russia'的人口。

SELECT name 
    FROM world
   WHERE population >
     (SELECT population FROM world
      WHERE name='Russia');

--2、列出歐州每國家的人均GDP,當中人均GDP要高於英國'United Kingdom'的數值。

SELECT name 
    FROM world
   WHERE continent = 'Europe' AND            --选取欧洲国家
        (GDP/population >                    --人均GDP
        (SELECT GDP/population FROM world
            WHERE name = 'United Kingdom')); --英国的人均GDP

--3、在阿根廷Argentina 及 澳大利亞 Australia所在的洲份中,列出當中的國家名字 name 及洲分 continent 。按國字名字順序排序。

SELECT name, continent
    FROM world
   WHERE continent in 
    (SELECT continent 
         FROM world 
        WHERE name in ('Argentina', 'Australia'))   --选取Argentina和Australia所在的洲
 ORDER BY name;

--4、哪一個國家的人口比加拿大Canada的多,但比波蘭Poland的少?列出國家名字name和人口population 。

SELECT name, population
    FROM world
   WHERE population <                    --BETWEEN AND 包含Poland和Canada
        (SELECT population FROM world WHERE name ='Poland') AND 
        population > 
        (SELECT population FROM world WHERE name ='Canada');

--5、Germany德國(人口8000萬),在Europe歐洲國家的人口最多。Austria奧地利(人口850萬)擁有德國總人口的11%。顯示歐洲的國家名稱name和每個國家的人口population。以德國的人口的百分比作人口顯示。

SELECT name, 
       CONCAT(ROUND(100*population/       --先乘后除
            (SELECT population            --选取德国的人口作为除数
                FROM world 
                WHERE name = 'Germany')),'%')  --四舍五入取整,联结%
    FROM world
   WHERE continent = 
            (SELECT continent 
                FROM world 
                WHERE name = 'Germany');    --选取德国所在的洲(欧洲)

你可能感兴趣的:(今日SQL练习2018-11-26)