面试遇到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

转载于:https://www.cnblogs.com/shuaisam/archive/2012/03/27/2419899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值