不懂?没有人会嘲笑你;装懂?人人鄙视你;不懂,先研究;再不懂,就问吧!

MYSQL GROUP BY 分组、每组按条件取前几条数据

mysql xjmroots 2034℃ 0评论

MYSQL GROUP BY 分组、每组按条件取前几条数据

我们经常会用到分组查询、如下、根据type分组查询table_name表。
SELECT type FROM table_name GROUP BY type;

 

如果我们想要、将每个分组、按条件取出前几条数据。用上面这样的分组查询无法实现、用下面SQL可以实现、执行效率还行
set @row=0;set @mid=”;select a.*,b.rownum from table_name a inner join (SELECT type, id, case when @mid = type then @row:=@row+1 else @row:=1 end rownum, @mid:=type mid FROM table_name order by type desc,time DESC) b on b.id=a.id where b.rownum<=5 ORDER BY a.type;

转载请注明:家明的博客 » MYSQL GROUP BY 分组、每组按条件取前几条数据

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址