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 分布式计算 Spark
如何在Spark中实现Count Distinct重聚合
Count Distinct是SQL查询中经常使用的聚合统计方式,用于计算非重复结果的数目。由于需要去除重复结果,Count Distinct的计算通常非常耗时。本文主要介绍在Spark中如何基于重聚合实现交互式响应的COUNT DISTINCT支持。
GROUP BY 一个以上的列
GROUP BY 一个以上的列
105 1
|
SQL 分布式计算 Java
聚合操作_groupBy_聚合操作 | 学习笔记
快速学习聚合操作_groupBy_聚合操作
135 0
聚合操作_groupBy_聚合操作 | 学习笔记
|
.NET 开发框架
Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html 今天在使用linq处理一下需求时碰到一点小问题,特此记录。   需求:     按照品名相同的进行汇总,数量相加、表号按分号分割显示   1、组织...
1320 0
|
SQL 关系型数据库 MySQL
aggregate | 在R中进行分组统计
aggregate | 在R中进行分组统计
195 0
|
分布式计算 Spark
【Spark 应用】实现分组取topN
【Spark 应用】实现分组取topN
209 0
|
数据挖掘 开发者 索引
分组与聚合|学习笔记
快速学习 分组与聚合
156 0