首页 > 其他分享 >group by | order by| distribute by| sort by| cluster by | partition by 的区别

group by | order by| distribute by| sort by| cluster by | partition by 的区别

时间:2024-11-04 08:47:47浏览次数:3  
标签:sort partition group distribute cluster 排序 order

目录

1、order by  和 group by

1.1、order by: 排序,属于全局排序

1.2、goup by: 分区

2、distribute by 、sort by 、cluster by 、partition by

2.1、distribute by: 分组

2.2、sort by: 强制排序

2.3、partition by: 分组

2.4、cluster by: (culster by  = distribute by + sort by)


1、order by  和 group by

1.1、order by: 排序,属于全局排序

示例SQL:

# 查找所有学生,并按照年龄正序排序。
select * from student order by age;

1.2、goup by: 分区

示例SQL:

# 查找所有学生,并按照性别分组。
select * from studeng group by gender;

2、distribute by 、sort by 、cluster by 、partition by

2.1、distribute by: 分组

和 group by 不同的是,distribute by 经常在开窗函数中使用。

所谓开窗函数就是:明细数据和聚合函数一起使用时就会用到开窗函数。

语法格式:

over(distribute by colname[,colname.....])

2.2、sort by: 强制排序

sort by子句会让输入的数据强制排序 (强调:当使用排序时,窗口会在组内逐行变大)也是和开窗函数一起使用的。sort by 你可以理解为局部排序,order by 理解为全局排序。

语法格式:

over([distribute by colname] [sort by colname [desc|asc]])

注意:可以使用partition by + order by 组合来代替distribute by+sort by组合

2.3、partition by: 分

partition by 出镜率挺高,首先和group by 相比,它经常和开窗函数配合使用,和 distribute by 相比,它的使用频率高,一般可以替换,但是partition by 经常和 order by 一起使用,而distribute by 和 sort by 搭班使用。

2.4、cluster by: (culster by  = distribute by + sort by)

cluster by 是distribute by + sort by的复合操作,就是说 当开窗函数中分组字段和排序字段是一个字段时,可以直接使用cluster by 。

标签:sort,partition,group,distribute,cluster,排序,order
From: https://blog.csdn.net/m0_70691645/article/details/143472280

相关文章

  • ABC370 E - Avoid K Partition
    ABC370E-AvoidKPartition求一个序列的合法划分方案数。一种划分合法当且仅当没有一个子串的和是\(k\)。由于是否存在子串和为\(k\)很重要,因此考虑将它加入状态设计中,记\(f[i][0/1]\)表示\(1\simi\),\(i\)处结束,还没有/已有和为\(k\)的子段,方案数。用\(s[i]\)......
  • Partition架构
    优质博文:IT-BLOG-CNPartition架构【1】结构:Region至少3个Zone,Zone内至少两个Partition,Partition内至少1个K8SMemberCluster;【2】故障域:故障域及核心链路至少Zone内收敛,甚至Partition收敛。故障域之间不应该有交互(状态流等);【3】变更规范:不同时变更多个Zone,甚至不同......
  • 【Linux内核】Cgroup原理和使用
    1.Cgroup简介cgroups(ControlGroups)是Linux内核的一个特性,用于对进程组的物理资源(如CPU、内存、磁盘I/O等)进行细粒度的控制和监控。cgroups可以帮助你限制、记录和隔离资源使用,但它本身并不直接用来“拉高CPU负载”。相反,cgroups通常用于限制进程可以使用的资源量,以防止它们消耗......
  • sort() 排序和qsort() 排序(超详细)
    目录前言一、qsort()是什么?1.核心代码:函数的原型参数含义:实际使用(一般只对qsor()函数进行微调)以整形数组进行演示2.其他类型比较一级排序二级排序多级排序二、sort()是什么?1.自动调用(从小到大)2.自定义调用一级排序多级排序三.sort()排序和qsort()排序的区别及各自特......
  • 数组排序简介-计数排序(Counting Sort)
    基本思想        通过统计数组中每个元素在数组中出现的次数,根据这些统计信息将数组元素有序的放置到正确位置,从而达到排序的目的。算法步骤计算排序范围:遍历数组,找出待排序序列中最大值元素 nums_max和最小值元素 nums_min,计算出排序范围为 nums_max−nums_min......
  • 数组排序简介-快速排序(Quick Sort)
    基本思想        采用经典的分治策略,选择数组中某个元素作为基准数,通过一趟排序将数组分为独立的两个子数组,一个子数组中所有元素值都比基准数小,另一个子数组中所有元素值都比基准数大。然后再按照同样的方式递归的对两个子数组分别进行快速排序,以达到整个数组有序。......
  • 重分区算子:repartition 与 coalesce 的区别
    在大数据处理中,经常会遇到需要对数据集进行分区调整的情况,这时就会用到repartition和coalesce这两个重分区算子。本文将详细介绍它们的区别,并通过案例来帮助理解。一、repartition和coalesce的定义与基本原理repartition定义:repartition算子用于对数据集进行重新分区,它会......
  • order by 、sort by、distribute by、group by、cluster by的区别
    1.orderby:用途:主要用于对查询结果进行排序。返回的结果集是全局有序的。SELECT*FROMemployeesORDERBYsalaryDESC;2.SORTBY用途:主要用于对分布式查询结果进行排序。每个节点(分区)分别进行排序,但返回的结果集不一定全局有序。适用于Hive等大数据处理系统。SELEC......
  • qsort排序
    在体操比赛中,每位选手的得分是由多名裁判综合打分所得。现在已经汇总了N名选手的个人总得分(选手的编号依次为1,2,……N),请你设计程序找出第K名选手在所有选手中的排名。输入说明:第一行是N和K,N表示运动员的个数,K是选手序号;第二行依次是这N位运动员的个人总得分。输出说明:第K名(从1开......
  • qsort函数的学习与使用
    零.导言    在之前的文章中,我介绍了冒泡排序,即按ASCII码值把元素从小到大排序(文章链接我放在了第五部分,有兴趣的小伙伴可以求看看)。而今天我将继续介绍qsort函数,这个函数可以起到和冒泡排序一样的作用,并且有着更加广泛的应用场景。一.qsort函数的定义    qso......