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

2015-04-28 22:38:13 +08:00
 saximoer
  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实现。

2858 次点击
所在节点    Oracle
1 条回复
batman2010
2015-04-28 23:02:56 +08:00
第一题可以不用join实现吗?直接group by分组最简单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/187093

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX