MySQL-数据查询(Select)-新增

第1关:查询销售总额前三的理财产品

任务描述 本关任务:查询销售总额前三的理财产品。

相关知识 为了完成本关任务,你需要掌握: 嵌套查询; rank() over(partition by …order by)的使用。

几个重要函数 -rank() over(partition by …order by) partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组. 例如: select name,age,score,rank() over(partition by age order by score desc) as rank_num from players; 查询结果: rankpartition

编程要求 请用一条SQL语句完成以下查询任务: 查询2010年和2011年这两年每年销售总额前3名(如果有并列排名,则后续排名号跳过之前的并列排名个数,例如1、1、3)的统计年份(pyear)、销售总额排名值(rk)、理财产品编号(p_id)、销售总额(sumamount)。 注意结果输出要求:(1)按照年份升序排列,同一年份按照销售总额的排名值升序排列,如遇到并列排名则按照理财产品编号升序排列;(2)属性显示:统计年份(pyear)、销售总额排名值(rk)、理财产品编号(p_id)、销售总额(sumamount)(3)结果显示顺序:先按照统计年份(pyear)升序排,同一年份按照销售总额排名值(rk)升序排,同一排名值的按照理财产品编号(p_id )升序排。

经验分享 程序员 微信小程序 职场和发展