初学SQL,思路还不太清晰
表的结构:
CREATE TABLE Games (
Name varchar ,
Platform varchar ,
Year_of_Release int ,
Genre varchar ,
Global_Sales double )
分别对应的字段解析是:
name--名字;Platform--平台;Year_of_Release--发行年;Genre--分类;
Global_Sales--总销量。
现在是要选出“每个分类下,销量最大的物品”(输出Genre, name, Global_Sales)
该怎样写SQL?
cr.lanshang_season_account换成Games,win换总销量,season换成平台,name不变,如下
select tba.tbs,tbb.name,tba.mx from(SELECT season 'tbs',max(win) 'mx' FROM cr.lanshang_season_account group by season) tba inner join cr.lanshang_season_account tbb on tba.mx=tbb.win and tba.tbs=tbb.season
代码如下: 主要是 row_number() 函数
select * from
(
select Genre, name, Global_Sales, row_number() over (partition by Genre order by Global_Sales desc) as rn from Games
) t where rn =1
没那么麻烦的 分组就行