注册 登录
编程论坛 Oracle论坛

请问下面的SQL语句怎么写?

KRZS2005 发布于 2006-05-16 13:03, 1079 次点击
1. 有两个表
表A(varchar(32) NAME,int GRADE)
数据:
ZHANGSHAN 80
LISI 60
WANGWU 84

表B(varchar(32) NAME,int AGE)
数据:
ZHANGSHAN 26
LISI 24
WANGWU 26
WUTIAN 26

写SQl语句根据名字(NAME)相同按年龄(AGE)分组得到不同年龄的人的平均成绩,并写出结果。


2. 有一个数据库表dept中有如下数据:
id_no id_name
1000 S1
1001 S2
1002 S3
1003 S4
1000 S5
1000 S6
1001 S7

表中有id_no重复,如id_no为1000的有3条记录,如id_no为1001的有2条记录, 现在要按照id_no给表建索引,需要删除id_no重复了的那些记录,但不能删掉所但不能删掉所有拥有该id_no的记录,必需保留一条拥有该id_no的记录(如id_no为1000的只剩下一条记录)
(1)请写出SQl语句(或SQL语句组),查询所有id_no重复的记录。
(2)请写出SQl语句实现题目要求的结果,即只保留一条拥有该id_no的记录,删除其他id_no重复的记录.
2 回复
#2
hsjljh2006-05-16 17:32

create table tableA
(
name varchar(32),
grade int
);

create table tableB
(
name varchar(32),
age int
);

insert into tableA values('zhangshan',80);
insert into tableA values('lisi',60);
insert into tableA values('wangwu',84);

insert into tableB values('zhangshan',26);
insert into tableB values('lisi',24);
insert into tableB values('wangwu',26);
insert into tableB values('wutian',26);

select age,avg(grade) from tableA,tableB
where tableA.name=tableB.name
group by age;

呵呵 不知道对不对啊
是第一题

#3
hsjljh2006-05-16 19:17

(1)select id_no from dept;
(2)create UNIQUE index index_id_no
on dept(id_no,id_name);

第二题
1