天天看点

ETL数据仓库工程师笔试题和面试题整理

摘自网络的一些ETL笔试和面试题,希望对大家有帮助,欢迎补充答案,谢谢

  1. 如何排重(考察sql),就是group by xxx having count(1)>1。
  2. shell的一些基本命令,如tail、seed、crontab等
  3. 如如何查看文件第几行?如何动态查看文件?如何查询文件关键字等等。
  4. 还有就是数据仓库的基本理论,比如怎么分层?
  5. 左右关联的区别
  6. substr和substratring的区别,说真的这题面试官给我整蒙了,很确定,他反复问我确不确定。。。。很调皮了
  7. 之前用的etl和bi工具
  8. 常用的linux命令
  9. 最快什么时候能入职
  10. 在这个岗位上,你认为你会面临的最大挑战是什么
  11. 你对我们公司有什么了解
  12. 你的优点是什么,周围人如何评价你的
  13. Mr的过程
ETL数据仓库工程师笔试题和面试题整理

一 .选择题 (每题 1分)

1、在sql的查询语句中,用于分组查询的语句是( C )。

a)order by b)where c)group by d)having

2、在“学生情况.dbf”表中,查询计算机专业、助学金大于40元的学生的姓名,正确的语句是( C )。

a)select 姓名 from 学生情况 where 计算机 .and.助学金<40

b)select 姓名 from 学生情况 where 专业=“计算机”.or.助学金>40

c)select 姓名 from 学生情况 where 专业=“计算机”.and.助学金>40

d)select 姓名 from 学生情况 where 专业=“计算机”.and.助学金<40

3、下列sql语句中,修改表结构的是( A )。

a)alter b)create c)desc d)rename

4、已知职工表emp有工号e_no和工资e_sal两个字段。从职工关系中检索所有工资值,要求在输出结果中没有重复的工资值,则sql的命令语句能实现上述功能的是( B )。

a)select all e_sal from emp

b)select distinct e_sal from emp

c)select e_sal from emp

d)select e_sal where emp

5、请选出属于dml的选项( C )

a) truncate b)creat c)delete d)commit

6、视图的数据存放在哪里( A )

a.数据库的表中    b.数据字典的select语句中

c.from列表的第一个表格的select语句中 d.列表的第二个表格的select语句中

7、当fetch执行失败时,哪种游标的属性值为true( C )

a.%isopen b.%found c.%notfound d.%rowcount

8、下列那些说法是正确的( BD )

a) 一个事务中的某条sql命令提交时,其它sql命令可以不提交。

b) 在一个关系表中,主键可唯一标识一行记录。

c) 一个关系表中的外键必定是另一表中的主键。

d) 回滚可以在事务失败时,回到操作事务前的数据状态。

9、假如一个变量的值为null,有一条if语句,

if变量=null

分支1

else

分支2

请问最终执行的结果是( B )

a) 分支1 b)分支2 c)系统错误提示 d)都没有执行

10、关于主键(primary key)和唯一索引(unique index)的说法哪些是错误的?( C )

a、 唯一索引的列允许为null值

b、 主键的列不允许为null值

c、 一个表只能有一个唯一索引

三 简答题(或者上机) (前3题每题10分,4题每问6分)

1)不借助第三方工具查看执行计划

1、使用Explain Plan,查询PLAN_TABLE;

EXPLAIN PLAN

SET STATEMENT_ID=‘QUERY1’

FOR

SELECT *

FROM a

WHERE aa=1;

SELECT operation, options, object_name, object_type, ID, parent_id

FROM plan_table

WHERE STATEMENT_ID = ‘QUERY1’

ORDER BY ID;

2、SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics

SET AUTOTRACE ON; 包含执行计划和统计信息

2)格式转换

学生 科目 成绩

student1 语文 80

student1 数学 70

student1 英语 60

student2 语文 90

student2 数学 80

student2 英语 100

将上述表结构信息转换为一下格式

学生 语文 数学 英语

student1 80 70 60

student2 90 80 100

select T1.学生 as 学生, T1.成绩 as 语文,T2.成绩 AS 数学,T3.成绩 AS 英语 FROM 表 T1, 表 T2,表 T3 WHERE T1.学生 = T2.学生 AND T1.学生 = T3.学生 AND T1.科目 = ‘语文’ AND T2.科目 = ‘数学’ AND T3.科目 = ‘英语’

3)树形展示

RID RNAME PID ISLEAF ALEVEL

1 1 IT课程 0 0 0

2 2 开发类 1 0 1

3 3 Shell编程 2 1 2

4 4 C# 2 1 2

5 5 Oracle 2 0 2

6 6 pl/sql 5 1 3

7 7 维护类 1 0 1

8 8 Linux维护 7 1 2

9 9 JAVA 2 0 2

10 10 JSP 9 1 3

isleaf 0非叶子节点(下面还有数据) 1叶子节点(下面没有数据)

alevel 为第几节点 0 为根节点

将上述能容以树形结构显示

IT课程

开发类

Shell编程

C#

Oracle

pl/sql

JAVA

JSP

维护类

Linux维护

答 :

–标准答案

select * from temp t start with t.RID = ‘1’

connect by prior t.PID = t.RID;

–如果连续用可以用这个

select case ALEVEL when 0 then ‘’ when 1 then ’ ’ when 2 then ’ ’ when 3 then ’ ’ end||t.RNAME from temp t

order by to_number(RID) ;

4)sql 编程

EMP 表

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

1 7369 SMITH CLERK 7902 1980-12-17 800.00 20

2 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30

3 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30

4 7566 JONES MANAGER 7839 1981-4-2 2975.00 20

5 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30

6 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30

7 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10

8 7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20

9 7839 KING PRESIDENT 1981-11-17 5000.00 10

10 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30

11 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20

12 7900 JAMES CLERK 7698 1981-12-3 950.00 30

13 7902 FORD ANALYST 7566 1981-12-3 3000.00 20

14 7934 MILLER CLERK 7782 1982-1-23 1300.00 10

DEPT 表

DEPTNO DNAME LOC

1 10 ACCOUNTING NEW YORK

2 20 RESEARCH DALLAS

3 30 SALES CHICAGO

4 40 OPERATIONS BOSTON

1.每组工资最高的人的资料

SELECT * FROM EMP T WHERE T.SAL IN (SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO)

select e.* from emp e,(select deptno,max(sal) ssal

from emp group by deptno) m

where e.deptno=m.deptno and e.sal=m.ssal;

2.每个部门中低于本部门平均工资的人

SELECT * FROM EMP T WHERE T.SAL < (SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO)

3.查看工资最高的人第4-8人

SELECT * FROM (SELECT ROWNUM AS NUM ,* FROM (SELECT * FROM EMP ORDER BY SAL DESC) T) WHERE NUM>=4 AND NUM <=8

4.不用组函数求薪水最高

SELECT ROWNUM ,* FROM (SELECT * FROM EMP ORDER BY SAL DESC) T) WHERE ROWNUM = 1

5.直属领导下大于2名员工的人

SELECT * FROM EMP WHERE MGR IN

(SELECT MGR FROM EMP GROUP BY MGR HAVING COUNT(*) > 2)

作者:沫沫妞 哟

来源:CSDN

原文:https://blog.csdn.net/weixin_42800008/article/details/84257715

版权声明:本文为博主原创文章,转载请附上博文链接!

http://tieba.baidu.com/p/3085643891?fr=ala0&pstaala=2

《亲历数据库开发笔试面试题汇总,献给即将毕业的学弟学妹》

https://blog.csdn.net/oversky2003/article/details/6609017

ETL数据仓库工程师笔试题和面试题整理