• 数据库常见考题查询SQL


    1、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序

     

    执行查询:

    select count(*) count,a.deptid from employee a where a.salary >
    (select avg(salary) from employee b where a.deptid = b.deptid) 
    GROUP BY a.deptid
    select count(*) count,a.deptid from employee a,
    (select deptid,avg(salary) as numberFROM employee GROUP BY deptid)b 
    where a.salary > b.number and a.deptid = b.deptid
    GROUP BY a.deptid

    2、用一条SQL语句查询出每门课都大于80分的学生姓名

    执行查询:

    select distinct name from score  where  name not in (select distinct name from score where score<=80)

    请写出下列查询的SQL语句:

    3、查找出所有位于亚洲并且奖牌数不小于10的国家,返回结果应该包含:国家姓名,奖牌数量

     执行查询:

    select COUNTRY_NAME,SUM(MEDAL_COUNT) as NUMBER from demo1 WHERE CONTINENT="Asia"  GROUP BY COUNTRY_NAME HAVING SUM(MEDAL_COUNT)>=10

    4、查找出上表所有获得超过一种奖牌的国家,返回的结果应当包含:国家姓名,奖牌类型的数量

     执行查询:

    select COUNTRY_NAME,COUNT(MEDAL_TYPE) as NUMBER from demo1  GROUP BY COUNTRY_NAME HAVING COUNT(MEDAL_TYPE)>1

    5、查找出所有满足以下条件的记录,条件为:某个国家某种奖牌的数量比整个世界同种奖牌数量的平均值要高,返回的结果应当包含:国家姓名,奖牌类型,奖牌数量

     执行查询:

    select a.COUNTRY_NAME,a.MEDAL_TYPE,a.MEDAL_COUNT from demo1 a,
    (select MEDAL_TYPE,AVG(MEDAL_COUNT) as average from demo1 GROUP BY MEDAL_TYPE)b
    where a.MEDAL_COUNT > b.average and a.MEDAL_TYPE = b.MEDAL_TYPE
    追梦的脚步,永不停息
  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7410112.html
Copyright © 2020-2023  润新知