MySQL如何实现Excel分组排序功能?

 2022-10-27    480  

Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据。

Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如何在MySQL中对数据进行分组排序呢?

下面介绍如何利用用户变量进行分组排序并取TOP1数据。

MySQL如何实现Excel分组排序功能?

1、现在有一份数据表tmp_provice_sales,如下:表格记录的是某商品省份城市销售数量,现在需要提取每省份销售TOP1的城市数据。

MySQL如何实现Excel分组排序功能?

2、然后在查询框中输入以下代码:

MySQL如何实现Excel分组排序功能?

3、点击运行,即可获取每个省份销售TOP1数据,运行结果如下图所示:

MySQL如何实现Excel分组排序功能?

需要注意的点是:

需对原始数据源销售额进行降序排序,order by provice ,sales desc,将相同省份数据排列到一起,且按销售数量由大到小排列;

  • 再利用if函数对数据添加序列号;
  • 提取各分组中排名为1的数据,即为需求数据;
  • 如果要获取top3数据,只需修改最后一句,having ranks <4 即可。

原始代码展示如下:

selecta.*,
if(@v_provice=provice,
@v_rank:=@v_rank+1,
@v_rank:=1
)asranks,@v_provice:=proviceasprovice2
from
(select*fromtmp_provice_sales
orderbyprovice,salesdesc)a,
(select@v_provice:=null,@v_rank:=0)b
havingranks=1;

小结

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/10582.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。