一道SQL面试题,到底能难倒了多少人? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
不要在回答技术问题时复制粘贴 AI 生成的内容
javaa
V2EX    程序员

一道SQL面试题,到底能难倒了多少人?

  •  
  •   javaa 2013-06-25 11:01:24 +08:00 13070 次点击
    这是一个创建于 4571 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现有employee 表,表中有 员工编号(id) 员工年龄(age) 员工工资(salary) 员工部门(deptid), 按要求用一条SQL语句完成

    create table employee(
    id int identity(1,1) primary key ,
    name varchar(50),
    salary bigint,
    deptid int);

    1.查出每个部门高于部门平均工资的员工名单

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


    3.求每个部门工资不小于6000的人员的平均值;

    4、各部门在各年龄段的平均工资

    看有多少人能答出来。

    参考答案 http://www.jfox.info/yuan-gong-bu-men-gong-zi-sql-mian-shi-ti
    19 条回复    1970-01-01 08:00:00 +08:00
    Alexisused
        1
    Alexisused  
       2013-06-25 11:14:23 +08:00
    ...这不是课本上基础题么
    pythonee
        2
    pythonee  
       2013-06-25 11:21:14 +08:00
    出来工作,这些东西不用就忘了,我都写不出来
    lichao
        3
    lichao  
       2013-06-25 11:24:20 +08:00
    请尽快修正你的参考答案
    Marlon
        4
    Marlon  
       2013-06-25 11:25:37 +08:00
    楼上是高手啊,难住我了,,,
    thinkif
        5
    thinkif  
       2013-06-25 11:28:34 +08:00
    是每一个小题目一个SQL 还是4个题目必须在一条SQL出来?
    slixurd
        6
    slixurd  
       2013-06-25 12:25:37 +08:00
    考试题无误= =昨天还在题库里面看到类似的题目...
    akira
        7
    akira  
       2013-06-25 14:26:05 +08:00
    “按要求(各)用一条SQL语句完成”,
    我想了半天,也想不到用一条sql语句完成4个要求该怎么写。。。
    cxshun
        8
    cxshun  
       2013-06-25 14:29:25 +08:00
    话说考这些真的有意义吗?找一个刚毕业的,估计做的很不错,但真的是你需要的吗?
    dreampuf
        9
    dreampuf  
       2013-06-25 15:51:56 +08:00
    @akira 四道题,四个子查询啊

    第三题参考答案错了, 不小于 != `>`
    第四题答案太蠢,这么回答的人也不会用他

    SELECT m, COUNT(m) FROM (SELECT ((id-id%5)/5)*5 as m FROM users) as nm GROUP BY m;
    javaa
        10
    javaa  
    OP
       2013-06-25 23:11:28 +08:00
    各位,这是参考题目
    michaelbibby
        11
    michaelbibby  
       2013-06-27 22:25:39 +08:00
    * 这个题目的目的和意义是什么?
    * 你认为一条 SQL 语句搞定问题就是最好的?更容易理解?可维护性更高?
    explon
        12
    explon  
       2013-06-27 22:52:38 +08:00 via iPhone
    用一条语句的性能问题你考虑过吗?
    zieglar
        13
    zieglar  
       2013-06-27 23:06:06 +08:00
    楼主就是来诱引你们去看那网站的,软广告,block~
    Ricepig
        14
    Ricepig  
       2013-06-27 23:10:18 +08:00
    各种子查询各种join

    性能堪忧啊lz
    vibbow
        15
    vibbow  
       2013-06-28 00:46:02 +08:00
    用一条sql完成,纯属炫技。

    为可维护性和性能优化去写sql,才是正常的做法。
    Alexisused
        16
    Alexisused  
       2013-06-28 14:18:39 +08:00
    // 1.列出至少有一个员工的所有部门。
    select dname from dept where deptno in(select deptno from emp e group by deptno having count(e.empno)>=1)
    // 2.列出薪金比“SMITH”多的所有员工。
    select * from emp where sal>(select sal from emp where ename='SMITH')
    // 3.列出所有员工的姓名及其直接上级的姓名。
    select e.ename, m.ename from emp e left join (select ename,empno from emp) m on e.mgr = m.empno
    select a.ename,(select ename from emp b where b.empno=a.mgr) as boss_name from emp a
    // 4.列出受雇日期早于其直接上级的所有员工。
    select e.ename from emp e, emp m where e.mgr = m.empno and e.hiredate<m.hiredate
    // 5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
    select d.dname, e.* from emp e left join dept d on e.deptno=d.deptno
    // 6.列出所有“CLERK”(办事员)的姓名及其部门名称。
    select e.ename, d.dname from emp e left join dept d on e.deptno=d.deptno where e.job='CLERK'
    // 7.列出最低薪金大于1500的各种工作。
    select distinct e.job from emp e group by job having min(e.sal)>1500
    // 8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
    select e.ename from emp e, dept d where d.dname='SALES' and e.deptno=d.deptno
    // 9.列出薪金高于公司平均薪金的所有员工。
    select ename from emp where sal>(select avg(sal) from emp);
    // 10.列出与“SCOTT”从事相同工作的所有员工。
    select * from emp e where e.job=(select job from emp where ename='SCOTT')
    // 11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
    select ename, sal from emp where sal in (select sal from emp where deptno=30) and deptno<>30
    // 12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
    select ename, sal from emp where sal > (select max(sal) from emp where deptno=30)
    // 13.列出在每个部门工作的员工数量、平均工资。
    select dname, count(empno), avg(sal) from emp e left join dept d on e.deptno = d.deptno group by dname
    // 14.列出所有员工的姓名、部门名称和工资。
    select ename, dname, sal from emp e left join dept d on e.deptno=d.deptno
    // 15.列出所有部门的详细信息和部门人数。
    select d.*, enum from dept d left join (select deptno, count(empno) enum from emp group by deptno) e on e.deptno=d.deptno
    // 16.列出各种工作的最低工资。
    select dname, minsal from dept d left join (select deptno, min(sal) minsal from emp group by deptno) e on e.deptno=d.deptno
    // 17.列出各个部门的MANAGER(经理)的最低薪金。
    select e.deptno, min(sal) minsal from emp e where e.job='MANAGER' group by e.deptno
    // 18.列出所有员工的年工资,按年薪从低到高排序。
    select e.ename, nvl(sal, 0)*12 ysal from emp e order by ysal asc
    lookhi
        17
    lookhi  
       2013-06-28 14:32:54 +08:00
    你们都错了。楼主想说的是这个
    salary bigint,
    什么样的工资要bigint啊。。。。
    vibbow
        18
    vibbow  
       2013-06-28 15:30:43 +08:00
    @lookhi 万一人家发的是印尼盾呢~~~
    yanyanlong
        19
    yanyanlong  
       2013-06-28 16:12:20 +08:00
    题目不算难。 答不出来说明基础不过关。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5376 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 06:54 PVG 14:54 LAX 22:54 JFK 01:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86