嘿嘿,因为今天在公司闲得无聊,在网上找了一份oracle面试题做,并附上本人自己写的答案,希望和大家一起讨论讨论。
题目如下:
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
3、有员工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary<9999 and fage > 35
fsalary<9999 and fage < 35
每种员工的数量;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9