Oracle开发方面的面试题

人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下:
学历       年龄      人数        百分比
本科以上   20        34           14
大专       20        33           13
高中       20        33           13
初中以下   20        100          40
本科以上   21        50           20

 

2.表结构:
教师ID     学生ID        学科名称  成绩
1            1        数学    80
1            2        数学     50
2            3        英语     61
2            4        英语     59
...
用一个sql完成
分教师统计出每个教师每门课及格人数和及格率

结果格式:

教师ID 学科名称 及格人数 及格率
1       数学      1        50%

题一,
create table emp(id number,name varchar2(10),age int,wh varchar2(10));
insert into emp
select 1,'tom',20,'本科以上' from dual
union all select 2,'rose',20,'本科以上' from dual
union all select 3,'aa',21,'本科以上' from dual
union all select 4,'bb',21,'大专' from dual
union all select 5,'cc',21,'大专' from dual
union all select 6,'dd',21,'高中' from dual
union all select 7,'ee',21,'初中以下' from dual;

 

select wh 学历,age 年龄,count(*) 人数,round(count(*)/(select count(*) from emp),2)*100||'%' 百分比  from emp
group by wh,age

 

题2,

SQL> create table scores
  2  ( teacher_id number (2) ,
  3    student_id number (2) ,
  4    course  varchar2(20) ,
  5    score  number(3)) ;

Table created.

SQL>  
SQL> insert into scores values (1,1,'数学' , 80);

1 row created.

SQL> insert into scores values (1,2,'数学' , 50);

1 row created.

SQL> insert into scores values (2,3,'英语' , 61);

1 row created.

SQL> insert into scores values (2,4,'英语' , 59);

1 row created.

SQL> commit;

Commit complete.

select t1.teacher_id ,t1.course ,  t2.pass_student pass_number , to_char(t2.pass_student /t1.all_student *100 )|| '%'  pass_ratio from
   ( select teacher_id ,course ,  count(*)  all_student
   from scores  group by   teacher_id ,course   ) t1 ,
    ( select teacher_id , course , count(*)  pass_student
   from scores where score > 60  group by   teacher_id ,course ) t2
   where  t1.teacher_id =t2.teacher_id and t1.course = t2.course ;


 TEACHER_ID COURSE               PASS_NUMBER PASS_RATIO
---------- -------------------- ----------- -----------------------------------------
         1 数学                           1 50%
         2 英语                           1 50%

你可能感兴趣的:(SQL语句)