--建立临时表
--#商品表(编号,点击率)
if object_id('tempdb..#类别表') is not null drop table #类别表
select 001 as 编号,01 as 类别id, '2B铅笔' as 品名 into #类别表
insert into #类别表 select 002,01,'HB铅笔'
insert into #类别表 select 003,02,'签字笔'
insert into #类别表 select 004,03,'圆珠笔'
insert into #类别表 select 005,03,'好得利'
insert into #类别表 select 006,03,'晨光'
select * from #类别表
/*
编号 类别id 品名
----------- ----------- ------
1 1 2B铅笔
2 1 HB铅笔
3 2 签字笔
4 3 圆珠笔
5 3 好得利
6 3 晨光
(所影响的行数为 6 行)
*/
--#类别表(编号,类别id,品名)
if object_id('tempdb..#商品表') is not null drop table #商品表
select 001 as 编号,34 as 点击率 into #商品表
insert into #商品表 select 002,2
insert into #商品表 select 003,22
insert into #商品表 select 004,12
insert into #商品表 select 005,2
insert into #商品表 select 006,3
select * from #商品表
/*
编号 点击率
----------- -----------
1 2
2 3
3 2
4 2
5 22
6 22
(所影响的行数为 6 行)
*/
-----------------------------------------------------------------------------------------------------------------------------------------------
select b.类别id,b.品名,a.点击率 from #商品表 a
left join #类别表 b on a.编号=b.编号
right join (select max (点击率)as 点击率,类别id from #商品表 a left join #类别表 b on a.编号=b.编号 group by b.类别id ) c
on c.类别id=b.类别id
where c.点击率 = a.点击率
/*
类别id 品名 点击率
----------- ------ -----------
1 2B铅笔 34
2 签字笔 22
3 圆珠笔 12
(所影响的行数为 3 行)
*/