天天看點

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資料倉庫工程師筆試題和面試題整理