一、創建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去重