mysql 实现 sql row_number() over

创建临时表:临时表在数据库连接期间有效

  set @num:=0,@ptype:='',@stype='';
  DROP TABLE
  IF EXISTS `tmp_result`;
  create TEMPORARY table tmp_result
  select n.*,
        @num := if(@ptype=product_name and @stype=store_number ,@num+1,1) as rank,
        @ptype := n.product_name as pname,
        @stype := n.store_number as snumber
  from noodle as n
  where receipt_number>0
  order by product_name,store_number,order_time asc

  select *
  from tmp_result

数据表.png

要求:
求每个类别下,成员数量最多的100个(每个类别的前一百名)


结果.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容