본문 바로가기
공부/SQL

SQL Zoo 05 - SELECT within SELECT Tutorial

by 혼밥맨 2022. 1. 9.
반응형

SQL Zoo 05 - SELECT within SELECT Tutorial


Database


문제 1. 러시아보다 인구가 많은 나라 이름을 나열하세요.
정답
1
2
3
4
5
SELECT name
FROM world
WHERE population >
     (SELECT population FROM world
      WHERE name='Russia')
cs

 

문제 2. 1인당 GDP '영국'보다 큰 유럽 국가들을 보여주세요.
정답
1
2
3
4
5
6
SELECT name
FROM world
WHERE gdp/population >
     (SELECT gdp/population FROM world
      WHERE name='United Kingdom')
      AND continent= 'Europe'
cs

 

 

문제 3. 아르헨티나나 호주를 포함하는 대륙의 나라 이름과 대륙을 나열하시오. 국가 이름을 기준으로 정렬합니다.
정답
1
2
3
4
5
6
7
8
9
10
SELECT name, continent
FROM world
WHERE continent =
     (SELECT continent FROM world
      WHERE name='Argentina')
      OR
      continent =
     (SELECT continent FROM world
      WHERE name='Australia')
ORDER BY name
cs

 

문제 4. 인구가 캐나다보다는 많지만 폴란드보다는 적은 나라는 어디인가요? 이름과 인구를 표시합니다.
정답
1
2
3
4
5
6
7
8
9
SELECT name, population
FROM world
WHERE population < 
     (SELECT population FROM world
      WHERE name='Poland')
      AND
      population >
     (SELECT population FROM world
      WHERE name='Canada')
cs

 

문제 5. 독일은 유럽에서 가장 인구가 많은 나라이다오스트리아(인구 850만명)는 독일 인구의 11%를 차지한다.

 유럽의 각 나라 이름과 인구를 보여 주세요. 독일 인구의 백분율로 인구를 보여 주세요.

정답
1
2
3
4
5
6
7
8
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')
cs

 

 

문제 6. 유럽의 모든 나라보다 더 큰 GDP를 가진 나라는 어디인가? [이름만 제공] (일부 국가에서는 NULL gdp 값이 있을 수 있음)
정답
1
2
3
SELECT name 
FROM world 
WHERE gdp > (SELECT MAX(gdp) FROM world WHERE continent = 'Europe')
cs

 

 

문제 7. 각 대륙에서 가장 큰 나라(면적 기준)를 찾아 대륙, 이름 및 지역을 표시합니다.
정답
1
2
3
4
5
SELECT continent, name, area 
FROM world
WHERE area IN (SELECT MAX(area) 
               FROM world 
               GROUP BY continent)
cs

 

문제 8. 각 대륙과 알파벳 순으로 가장 먼저 오는 나라 이름을 나열하세요.
정답
1
2
3
4
5
SELECT continent, name
FROM world x
WHERE name <= ALL(SELECT name
                    FROM world y
                    WHERE x.continent = y.continent);
cs

 

문제 9. 모든 국가의 인구가 <= 25000000인 대륙을 찾아보세요. 그리고 나서 이 대륙들과 관련된 나라들의 이름을 찾으세요. 이름, 대륙 및 인구를 표시합니다.
정답
1
2
3
4
5
6
SELECT name, continent, population
FROM world x
WHERE 25000000>=ALL (SELECT population
                        FROM world y
                        WHERE x.continent=y.continent
                              AND population>0)
cs

 

 

문제 10. 어떤 나라들은 이웃 나라들의 3배 이상의 인구를 가지고 있다. 나라와 대륙을 추출해보세요.
정답
1
2
3
4
5
6
7
SELECT name, continent
FROM world x
WHERE population > ALL(SELECT population*3
                        FROM world y
                        WHERE x.continent = y.continent
                              AND population > 0
                              AND y.name != x.name)
cs

 

반응형

'공부 > SQL' 카테고리의 다른 글

SQL Zoo 07 - JOIN  (0) 2022.01.11
SQL Zoo 06 - SUM and COUNT  (0) 2022.01.11
SQL Zoo 04 - SELECT from Nobel Tutorial  (0) 2022.01.09
SQL Zoo 03 - Select from WORLD  (0) 2022.01.06
SQL Zoo 02 - Select Name  (0) 2022.01.05

댓글