人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下:
学历
本科以上
大专
高中
初中以下
本科以上
2.表结构:
教师ID
1
1
2
2
...
用一个sql完成
分教师统计出每个教师每门课及格人数和及格率
结果格式:
教师ID 学科名称 及格人数 及格率
1
题一,
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||'%' 百分比
group by wh,age
题2,
SQL> create table scores
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 ,
---------- -------------------- ----------- -----------------------------------------