員工工資:
實現:
drop table t_salary;
drop table t_dept;--部門信息
create table t_salary(
id varchar(2),
dept_id varchar(2),
name varchar(20),
salary number(7,2)
);
insert into t_salary values('1','1','Maggie',3454);
insert into t_salary values('2','2','Jerry',2300);
insert into t_salary values('3','3','Gitti',5600);
insert into t_salary values('1','1','Bill',4500);
create table t_dept(
dept_id varchar(2),
dept_name varchar(20)
);
insert into t_dept values('1','RQD');
insert into t_dept values('2','Sales');
insert into t_dept values('3','Markting');
select
dept_name "部門名字",
t_salary.dept_id "部門編號",
avg(salary) "平均工資" --分組內的平均值
from t_salary,t_dept
where t_salary.dept_id=t_dept.dept_id
group by t_salary.Dept_id,dept_name --用兩個作爲分組依據:如果只有id的話,部門名無法顯示,而只有部門名字可能會重複。
having avg(salary)>3000;
drop table author;
drop table work_book;
create table author(
aid varchar(5),
aname varchar(20),
acountbooks number(4)
);
insert into author values('1001','wyf',null);
insert into author values('1002','jhl',null);
insert into author values('1003','lm',null);
insert into author values('1004','zn',null);
create table work_book(
aid varchar(5),
wbname varchar(20)
);
insert into work_book values('1001','a');
insert into work_book values('1002','b');
insert into work_book values('1003','c');
insert into work_book values('1001','d');
update author aa --給author起別名
set acountbooks=
NVL(
(select count(aid) from work_book
group by aid
having aid=aa.aid
),
0
);
TOPN分析:取檢索結果的前n條記錄(或第A條到第B條)。
方式:配合使用嵌套和ROWNUM 僞列。
drop table course;--因爲與學生表建立關聯