mysql分类汇总应该怎么写

hoperman 2016-10-08 03:35:21
有三列数据,a=省份,b=城市,c=订单量。现在要跑出每个省份订单量前五的城市及其订单量、所属省份。求助:sql应该怎么写
...全文
368 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nieoding 2016-10-10
  • 打赏
  • 举报
回复
主要需要用到rank函数, 以下为MYSQL数据库范例,由于mysql并不自带rank函数,所以需要自己书写 创建表

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `a` int(11) NOT NULL,
  `b` int(11) NOT NULL,
  `c` int(11) NOT NULL,
  PRIMARY KEY (`id`)
);
分析SQL

select a,b,c,rank from
(
	select source.a,source.b,source.c,if(@cur_a=source.a,@rank:=@rank+1,@rank:=1) as rank,@cur_a:=source.a
	from
	(
		SELECT a,b,c FROM mytable
		group by a,b
		order by a,c desc
	) source,
	(
		select @rank:=0,@cur_a=null
	) tmp
) result
having rank<=5

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧