V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saximoer
V2EX  ›  Oracle

走过路过不要错过,新鲜出炉的 ORACLE 技能测验哟!(大家帮帮忙,,Ծ‸Ծ,, 我要被开除了在线等答案,急!)

  •  
  •   saximoer · 2015-04-28 22:38:13 +08:00 · 3050 次点击
    这是一个创建于 3524 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 用两种不同的连接写法,实现一条SQL查询出每个部门的员工数量(涉及到SCOTT用户下的EMP表和DEPT表。注意from a, b 和 from a join b 视为同一种写法,(+)和left/right join也视为一种写法)
    2. 某省电信公司需要做一个关于年龄段和所购买套餐额度范围的一个统计,该电信业务有大约三千万用户在使用,该公司有一张物化视图MV_USER_PKG,记录着每个用户的user_name(用户名,字符串)、user_age(年龄,整数)、curr_pkg_amt(当前套餐金额,整数,范围50~500),具体统计需求为显示:

      1. 年龄大于等于30岁,套餐金额大于等于150元的用户数量;
      2. 年龄大于等于30岁,套餐金额小于150元的用户数量;
      3. 年龄小于30岁,套餐金额大于等于150元的用户数量;
      4. 年龄小于30岁,套餐金额小于150元的用户数量;
      5. 以上四项在一行中显示,用一条SQL完成,提示,可用case when语句;
      6. 尽可能让你的SQL性能好。
    3. 查出大小超过1GB(按1024^3字节算)的表和索引,假定大小超过1G的表和索引均超过五个(DBA_SEGMENTS视图):

      1. 一条SQL实现按大小倒序排序,输出前十个段的所有者、段类型、段名称和段的大小(以GB为单位)
      2. 一条SQL实现按段类型分组,取出每个分组内的前五名的段类型、所有者、段名称和段的大小(以GB为单位)
    4. 在当前用户下,根据指定的表名,按列的正序排列,将列名串成逗号分隔的字符串。请用PL/SQL的过程(PROCEDURE)实现。注意:1)不要使用WMSYS.WM_CONCAT函数 2)当前用户下可能没有指定的表。 3)如果可以,请用一条SQL实现。

    1 条回复    2015-04-28 23:02:56 +08:00
    batman2010
        1
    batman2010  
       2015-04-28 23:02:56 +08:00
    第一题可以不用join实现吗?直接group by分组最简单。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1322 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.