Var*_*Rao 2 sql oracle group-by greatest-n-per-group
我有一个包含这些数据的表 MOVIE。
MOVIE_ID MOVIE_TITLE CATEGORY SALES_AMT
--------- ------------------------ --------------- ----------
M_0000004 The Boss Baby Animation 2000
M_0000006 Star Wars: The Last Jedi Science Fiction 3000
M_0000007 Get Out Horror 4000
M_0000008 Million Dollar Arm Action 2000
M_0000009 The Conjuring Horror 1000
M_0000012 The Dark Knight Action 3000
Run Code Online (Sandbox Code Playgroud)
我需要基于以下SALES_AMT方面的热门电影数据CATEGORY
所需的结果是这样的:
MOVIE_ID MOVIE_TITLE CATEGORY SALES_AMT
--------- ------------------------ --------------- ----------
M_0000004 The Boss Baby Animation 2000
M_0000006 Star Wars: The Last Jedi Science Fiction 3000
M_0000007 Get Out Horror 4000
M_0000012 The Dark Knight Action 3000
Run Code Online (Sandbox Code Playgroud)
如果我使用 GROUP_BY 选项,我不能选择MOVIE_ID和MOVIE_TITLE
select CATEGORY, MAX(SALES_AMT)
from MOVIE
group by CATEGORY
;
Run Code Online (Sandbox Code Playgroud)
尝试使用分析函数和子查询
select movie_id, movie_title, category, sales_amt
from (
select movie_id, movie_title, category, sales_amt,
row_number() over (partition by category order by sales_amt desc) r
from movie
) where r = 1
Run Code Online (Sandbox Code Playgroud)