--建立临时表
--#商品表(编号,点击率)
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 行)
*/