大数据分析入门之10分钟掌握order by排序

devtools/2024/9/22 18:12:22/

前言

书接上回大数据分析入门10分钟快速了解SQL
本篇将会进一步介绍order by排序。

基本语法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC -- 可以按多列排序
LIMIT n; -- 截取排序后的前n项

假设我们有students表,其中有name,score两个字段

  • 如果你需要3名分数最高的学生,你可以写
select name, score from students
order by score desc
limit 3

但现实中,成绩可能有并列;score一样的时候,谁排在前面呢?

  • 这个时候,就要引入第二个排序字段name
select name, score from students
order by score desc, name -- score降序、name默认升序
limit 3

进阶用法

SQL中有一种null值,不同的计算引擎可能排在不同的位置。

以现在大数据分析中最热门的SparkSQL为例

下面按照age排序,null在最前面

SELECT age, name FROM person ORDER BY age;
+----+--------+
| age|    name|
+----+--------+
|null|   Marry|
|null|  Albert|
|  18|    Mike|
|  30|Michelle|
|  30|     Joe|
|  50|    Fred|
|  50|     Dan|
+----+--------+

可以调整为

SELECT age, name FROM person ORDER BY age NULLS LAST; -- nulls last强制放最后
+----+--------+
| age|    name|
+----+--------+
|  18|    Mike|
|  30|Michelle|
|  30|     Joe|
|  50|     Dan|
|  50|    Fred|
|null|   Marry|
|null|  Albert|
+----+--------+

总结

关于order by,后续还可能在OVER函数(又叫Window语法)用到。

欢迎提出你遇到的SQL问题,我会针对地出一些教程解答大家问题的~


http://www.ppmy.cn/devtools/28799.html

相关文章

SpringBoot camunda

1:默认排他网关,表达式 Type:expression:${number%2000} 2: service task (系统自动执行用的最多):常用Delegate expression ${testGateWay} 举例: Component("testGateWay") public class TestGateWay implements JavaDelegate {…

css如何去掉重叠部分的边框,CSS中nth-child不生效

css如何去掉重叠部分的边框 div使用负的margin&#xff0c;margin-right:-1px&#xff1b;table表格设置边框后的重叠&#xff0c;border-collapse: collapse CSS中nth-child不生效 <body><ul><li><a><span class"item"></span&…

裸金属服务器使用效果好吗

在当今的数字化时代&#xff0c;信息技术的飞速发展&#xff0c;云计算技术已经成为企业信息化建设的重要基石。在众多计算资源中&#xff0c;裸金属和云服务器是两种主流的服务模式&#xff0c;它们各有千秋&#xff0c;为不同的用户需求提供了适合的解决方案。而裸金属服务器…

android 内部序列化对象

在Android中&#xff0c;内部序列化对象通常指的是将对象的状态转换为字节流&#xff0c;以便可以将对象保存到文件、通过网络发送&#xff0c;或者在应用的不同部分之间传递。在Java中&#xff0c;序列化是通过实现java.io.Serializable接口来完成的。Android继承了Java的序列…

uni-app scroll-view隐藏滚动条的小细节 兼容主流浏览器

开端 想写个横向滚动的列表适配浏览器&#xff0c;主要就是隐藏一下滚动条在手机上美观一点。 但是使用uni-app官方文档建议的::-webkit-scrollbar在目标标签时发现没生效。 .scroll-view_H::-webkit-scrollbar{display: none; }解决 F12看了一下&#xff0c;原来编译到浏览…

设计模式(十):装饰者模式

设计模式&#xff08;十&#xff09;&#xff1a;装饰者模式 1. 装饰者模式的介绍2. 装饰者模式的类图3. 装饰者模式的实现3.1 创建一个抽象组建Chef3.2 创建两个具体组件ChineseChef和EuropeanChef3.3 创建抽象装饰器ChefDecorator3.4 创建具体装饰器PlateChefDecorator3.5 测…

python gmssl SM4不填充加解密

问题描述 使用gmssl(python版本)进行SM4加/解密时结果与国标(GMT0002)不符&#xff0c;或解密失败&#xff0c;原因是gmssl默认使用PKCS7填充&#xff0c;国标文档里的样例是没有填充的。 解决方法 方法一&#xff1a;创建CryptSM4对象时将填充模式设为-1。这是笔者推荐的方法…

GPU 架构与 CUDA 关系 并行计算平台和编程模型 CUDA 线程层次结构 GPU 的算力是如何计算的 算力峰值

GPU 架构与 CUDA 关系 本文主要包含 NVIDIA GPU 硬件的基础概念、CUDA(Compute Unified Device Architecture)并行计算平台和编程模型,详细讲解 CUDA 线程层次结构,最后将讲解 GPU 的算力是如何计算的,这将有助于计算大模型的算力峰值和算力利用率。 GPU 硬件基础概念GP…