zoukankan      html  css  js  c++  java
  • sqlzoo练习系列(六)——子查询之SELECT中的SELECT练习

     【Tips】

    • sqlzoo官网链接:https://sqlzoo.net/wiki/SQL_Tutorial/zh
    • 每个系列开头介绍所用表及其信息
    • 每道题均测试通过,含有题目描述、代码和结果
    • 题目为自己简写,最好在官网查看具体题目
    • 部分测试结果不完整,仅为一部分截图

    SELECT中的SELECT练习链接:https://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial/zh

    所用的表world

    • name:国家名称
    • continent:洲
    • area:面积
    • population:人口
    • gdp:国内生产总值

     

     1.列出每个国家的名字,其中人口高于俄罗斯的人口

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

    2.列出欧洲人均GDP高于英国的国家

    SELECT name
    FROM world
    WHERE continent='Europe'
    AND gdp/population>(SELECT gdp/population
                        FROM world
                        WHERE name='United Kingdom')

    3.在阿根廷Argentina 及澳大利亚 Australia所在的洲中,列出其中的国家名字 name 及洲 continent 。按国家名字排序

    SELECT name,continent
    FROM world
    WHERE continent IN (SELECT continent FROM world
                        WHERE name='Argentina' OR name='Australia')
    ORDER BY name

    4.哪一个国家的人口比加拿大Canada的多,但比波兰Poland的少?列出国家名字name和人口population 

    SELECT name,population
    FROM world
    WHERE population >
    (SELECT population  FROM world
    WHERE name='Canada')
    AND population <
    (SELECT population  FROM world
    WHERE name='Poland')

    5.显示欧洲国家名称name和每个国家的人口population。以德国的人口的百分比作人口显示(百分数的显示)

    【可以用ROUND删除小数,用CONCAT增加百分比符号】

    SELECT name,CONCAT(ROUND(population/
                              (SELECT population 
                               FROM world
                               WHERE name = 'Germany') *100,0),'%')
                                   
    FROM world
    WHERE continent = 'Europe'

    找到世界上人口最多的国家

    SELECT name
      FROM world
     WHERE population >= ALL(SELECT population
                               FROM world
                              WHERE population>0)
    -- population>0,保证某些人口是没有填入,只有 null值。

    6.哪些国家的GDP比Europe欧洲的全部国家都要高呢? [只需列出 name 。] (有些国家的记录中,GDP是NULL,沒有填入资料的)

    SELECT name
    FROM world
    WHERE gdp > ALL (SELECT gdp FROM world
                     WHERE continent = 'Europe' AND gdp>0)

    7.在每一个州中找出最大面积的国家,列出洲continent, 国家名字 name 及面积area。 (有些国家的记录中,AREA是NULL,没有填入资料的。)

    SELECT continent,name,area FROM world x
    WHERE area >= ALL (SELECT area FROM world y
                       WHERE x.continent=y.continent AND area>0)

    8.列出洲份名称,和每个洲份中国家名字按字母顺序是排首位的国家名。(即每洲只有列一国)

    SELECT continent,name
    FROM world x
    WHERE name <=ALL(SELECT name FROM world y
                     WHERE x.continent = y.continent)

    9.找出洲,其中全部国家<=25000000人口,在这些洲中,列出国家名字name,continent,洲和population

    SELECT name,continent,population
    FROM world x
    WHERE 25000000>=ALL(SELECT population FROM world y
    WHERE x.continent = y.continent AND population>0)

    10.有些国家的人口是同洲的所有其他国的3倍或以上。列出 国家名字name 和 洲continent

    SELECT name,continent
    FROM world x
    WHERE population/3 >= ALL(SELECT population FROM world y
                              WHERE x.continent = y.continent
                              AND population>0 AND x.name != y.name)

  • 相关阅读:
    “大型售票系统”和“真正的电商系统”在“库存”巨大的差异计算
    c#有关udp可靠传输(包传输数据包) 升级
    CreateCompatibleDC工作原理
    Android 内存管理 &amp;Memory Leak &amp; OOM 分析
    ubuntu文本界面乱码的中国解决方案
    hdu 4972 A simple dynamic programming problem(高效)
    java定义和实现接口
    HTTP 404
    pcre函数具体解释
    Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频
  • 原文地址:https://www.cnblogs.com/tuzinn/p/13835540.html
Copyright © 2011-2022 走看看