datatable的数据进行组内排序_Excel的SQL语法之排序方法

在这一节我来讲Excel中如何通过SQL语句对数据进行排序。在Excel中如何使用SQL和SQL的初级语法见我前面的两篇文章,有问题的地方可以在评论区直接问我。本文的所有SQL都是基于下表进行操作的

学生信息表

290f64f54f84025bf1f828372d00fb0b.png

在SQL中,一般需要用到排序,例如将上表的数据按照年龄或身高升序进行排序,即全局排序;或将年龄相同的记录按照降序排序,即局部排序

一. 全局排序

全局排序通过ORDER BY和ASC、DESC就可以实现了。其语法如下

SELECT  列名FROM 表名 ORDER BY 列名 ASC;

ASC表示升序,DESC表示降序。例如对所有数据按照年龄进行升序排序,SQL语句如下

SELECT  *FROM [学生信息表$] ORDER BY 年龄 ASC;

执行结果如下

8546b282b88f926810e791d721967912.png

如果需要按多列进行排序呢? 比如按身高进行全局升序排序,如果身高相同就按年龄进行降序,SQL语句如下

SELECT  *FROM [学生信息表$] ORDER BY 身高 ASC, 年龄 DESC;

这样执行结果如下

b338868afee0a31c8d60481b86b7d116.png

如果列数更多,以此类推。

二. 局部排序

有时候,我们需要将数据按某列进行分组,然后每一个分组内部按照某个字段进行排序。

由于在Excel的SQL中貌似不支持RANK() OVER(PARTITION BY 性别 ORDER BY 身高 DESC)这样的操作,但通过ORDER BY 列名1 ASC, 列名2 DESC这样的语句同样可以达到目的。例如将相同性别的学生进行分组,每个组内按身高进行降序排序,SQL语句可以这样写

SELECT  *FROM [学生信息表$] ORDER BY 性别 ASC, 身高 DESC;

因为先按性别排序就完成了分组,然后再按身高降序排序就是需要的结果。执行结果如下

d83e1fa678322f04230f29e212c300e4.png

学会上面的排序方法,在Excel中基本上能满足所有排序的需求了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值