一、创建Oracle表
在Oracle中创建getmaxnum表
create table getmaxnum(
id nvarchar2(20),
num nvarchar2(30),
name nvarchar2(50)
);
二、添加数据
在表中插入数据
insert into getmaxnum values('1','2','zhangsan');
insert into getmaxnum values('1','3','lisi');
insert into getmaxnum values('2','1','wangwu');
insert into getmaxnum values('2','4','zhaoliu');
insert into getmaxnum values('3','5','tianqi');
insert into getmaxnum values('3','6','wuming');
insert into getmaxnum values('3','6','wuming');
insert into getmaxnum values('3','1','wuming');
三、业务需求
获取每个id中num最大的数据,比如:在id为1的数据中,要求最终查询的数据是 num 为3 的数据
四、执行sql
select distinct(bb.num),bb.id,bb.name from (select max(num) num ,id from getmaxnum group by id) aa left join getmaxnum bb on aa.num = bb.num
1. 通过group by 去重,因为在使用group by 去重时,可以使用max等函数,获取id的同时,获取每个id对应的最大num
2. 然后通过左连接 ,查询num相同的数据
3.因为查出的数据中有num最大值重复,使用distinct去重