group by聚合小技巧

简介: group by聚合小技巧

sql99和sql92的发展历史


比如表

id name age

1      1        2

1      2        3


通过ID分组,查最大的age,顺便把name查出来

得到的是1 1 3


那个函数查出来的数据就是取的分组后的第一行

不一定会和聚合函数的值同一行


group by必须和select的数据保持强一致,不然带出的数据可能会不正确.


MySQL中的any_value()函数可以让我们绕过sql99的规范,并且约束数据.


嵌套查询用的最多.


WITH AS


WITH AS短语也叫子查询部分,用来定义一个SQL片段,且该SQL片段会被整个SQL语句用到,这个语句算是公用表表达式(CTE)。
eg:


with子句优点


  1. SQL可读性增强。比如对于特定with子查询取个有意义的名字等。
  2. with子查询只执行一次,将结果存储在用户临时表空间中,可以引用多次,增强性能。


with子句语法


Withalias_nameas (select1), --as和select中的括号都不能省略alias_name2as (select2),--后面的没有with,逗号分割,同一个主查询同级别地方,with子查询只能定义一次如查询销售部门员工的姓名:withaas(selectidfroms_deptwherename=Salesorderbyid)
selectlast_name,titlefroms_empwheredept_idin (select*froma);--使用select查询别名


目录
相关文章
|
存储 SQL 关系型数据库
mysql数据分组 group by 多条件分组但条件不并列的分析
mysql数据分组 group by 多条件分组但条件不并列的分析
591 0
GROUP BY 一个以上的列
GROUP BY 一个以上的列
73 1
|
SQL 分布式计算 Java
聚合操作_groupBy_聚合操作 | 学习笔记
快速学习聚合操作_groupBy_聚合操作
99 0
聚合操作_groupBy_聚合操作 | 学习笔记
aggregate | 在R中进行分组统计
aggregate | 在R中进行分组统计
155 0
|
分布式计算 Spark
【Spark 应用】实现分组取topN
【Spark 应用】实现分组取topN
168 0
|
SQL 分布式计算 Spark
如何在Spark中实现Count Distinct重聚合
Count Distinct是SQL查询中经常使用的聚合统计方式,用于计算非重复结果的数目。由于需要去除重复结果,Count Distinct的计算通常非常耗时。本文主要介绍在Spark中如何基于重聚合实现交互式响应的COUNT DISTINCT支持。
|
SQL 关系型数据库 MySQL
|
数据挖掘 开发者 索引
分组与聚合|学习笔记
快速学习 分组与聚合
124 0