盘点多种SQL排序方案!

盘点多种SQL排序方案!

排序简介

在工作中,很多业务场景会用到排序,例如:TopN问题,连续性问题等,起着至关重要的作用。本次以人员销量为背景,谈谈一些排序方式。本文利用窗口函数、临时变量和表连接实现3中不同的排序方式!(注:本文说的排序也称编号,1、窗口函数需MySQL8.0以上,2、临时变量和3、表连接适用于任何版本

场景一:求某app连续登录3天的用户信息?

场景二:求每个部门薪资前三的员工信息?

这里通过样例数据来实操一下排序:

 

v2-2211f8a6f622076bb839b3cb1091fe6e_720w.webp_

 

1、窗口函数

方式1:重复连续

SELECT name, sale, dense_rank()over(order by sale desc) as rkFROM `ranking`

v2-ec7c6ee136b9c6c8faaff8492db7fc06_720w.webp_

 

方式2:重复不连续

SELECT name, sale, rank()over(order by sale desc) as rkFROM `ranking`

v2-797faa3ad7d577e848bb5857bc8a3922_720w.webp_

 

方式3:连续不重复

SELECT name, sale, row_number()over(order by sale desc) as rkFROM `ranking`

v2-b2a908adb16c8e65e956fb76e3425622_720w.webp_

 

注:

2、临时变量

方式1:重复连续

select name, sale, rkfrom(SELECT name, @rk:=if(@sale=sale,@rk,@rk+1) as rk, @sale:= sale as saleFROM `ranking`,(select @rk:=0,@sale:=null)aorder by sale desc)b

v2-62364b304cd09b949972f3d39c250f98_720w.webp_

 

方式2:重复不连续

select name, sale, rkfrom(SELECT name, @row:=@row+1, @rk:=if(@sale=sale,@rk,@row) as rk, @sale:= sale as saleFROM `ranking`,(select @rk:=0,@row:=0,@sale:=null)aorder by sale desc)b

v2-8e80f44fac5acf8563554111d5a3d73e_720w.webp_

 

方式3:连续不重复

SELECT name, sale, @rk := @rk + 1 as rkFROM `ranking`,(select @rk:=0)aorder by sale des

v2-42f7d9e36d48a9dfc4228427b3ed60c0_720w.webp_

 

注:利用临时变量计数达到编号的目的

3、拓展:表连接

方式1:重复连续

SELECT p1.name, p1.sale, (select count(distinct p2.sale) from `ranking` p2 where p2.sale > p1.sale)+1 as rkFROM `ranking` p1order by rk

v2-21713a3b0058fab347614960cd908a3a_720w.webp_

 

方式2:重复不连续

SELECT p1.name, p1.sale, (select count(p2.sale) from `ranking` p2 where p2.sale > p1.sale)+1 as rkFROM `ranking` p1order by rk

v2-a7ce982f3b1fc1404e928597757cfdac_720w.webp_

 

注:自然连接是通过条件过滤和count计数来达到目的

最后

不管是在日常工作中还是面试中,针对SQL排序的知识点特别重要,我们一定要加以掌握!

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

电商数据分析360°实战攻略!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>