面试遇到sql题目(二)

一、表结构及基础数据
create table customers(
    c_id number not null,
    o_id number not null,
    name varchar(50),
    age int
)
insert into customers values(1,2,'a',24);
insert into customers values(2,2,'a',24);
insert into customers values(3,2,'a',24);

insert into customers values(4,3,'b',23);
insert into customers values(5,3,'b',23);

insert into customers values(6,4,'c',25);

select * from customers


二、问题及参考答案   
--删除重复数据

方法1.

delete  from customers
       where c_id !=
    (select min(c_id) from customers c
    where c.o_id =customers.o_id
    and c.name = customers.name
    and c.age = customers.age )

方法2.

delete from customers
    where c_id not in 
    (select min(c_id) from customers group by o_id, name, age)

 

select * from customers



   
--设置表主键

alter table customers modify c_id primary key

posted @ 2012-03-27 17:23  shuaisam  阅读(198)  评论(0编辑  收藏  举报