sql 学习之 group by 及 聚合函数

1.在使用 GROUP BY 子句时,Select列表中的所有列必须是聚合列(SUM,MIN/MAX,AVG等)或是GROUP BY 子句中包括的列。同样,如果在SELECT 列表中使用聚合列,SELECT列表必须只包括聚合列,否则必须有一个GROUP BY 子句。例如:  

select customerid,salespersonid,count(*)
from sales.salesorderheader
where customerid <= 11010
group by customerid,salespersonid
order by customerid,salespersonid

2.聚合函数。聚合函数用于GROUP BY 字句,用于聚合分组的数据。聚合函数在和GROUP BY子句一起使用时显示出其强大的功能。但聚合函数的使用不限于分组查询;如果查询语句中使用了聚合函数,而没使用GROUP BY子句,则聚合函数是用于聚合整个结果集(匹配WHERE子句的所有行)。当不使用GROUP BY 子句时,在SELECT列表中某些聚合函数只能与其他的聚合函数一起使用,即聚合函数必须使用GROUP BY 子句才能在SELECT列表中与列明配对。例如,不使用GROUP BY子句,SELECT列表中AVG只能和SUM对应,但不能对应特定列。

3.AVG

 AVG函数用于计算平均值。

 For example:  

select salesorderid,avg(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

4.MIN/MAX

顾名思义,MIN/MAX用于计算所选择列分组的最小值与最大值。

For example:

select salesorderid,min(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

在将查询改为Max函数,For example:

select salesorderid,max(orderqty) as orderqtyavg
from sales.salesorderdetail
where salesorderid in (43660,43670,43672)
group by salesorderid

5.

5.

时间: 2024-08-01 19:56:52

sql 学习之 group by 及 聚合函数的相关文章

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

第二天,导出文件sql,查询,视图view,聚合函数,反模式,字符串处理函数

//把数据库导出到脚本文件mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql CREATE TABLE stud( id INT PRIMARY KEY, NAME VARCHAR(32) NOT NULL, score NUMERIC(4,1));//把所有名字都设成"Mike"了UPDATE stud SET NAME="Mike" //只设置分数>=70的记录的NameUPDATE stud

可以这样去理解group by和聚合函数

转载自:http://www.cnblogs.com/wuguanglei/p/4229938.html?utm_source=tuicool 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by 多个字段可以怎么去很好的理解呢?不过最后还是转过来了,简单写写吧,大牛们直接略过吧. =======

可以这样去理解group by和聚合函数(转)

http://www.cnblogs.com/wuguanglei/p/4229938.html 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by 多个字段可以怎么去很好的理解呢?不过最后还是转过来了,简单写写吧,大牛们直接略过吧. =========正文开始=========== 先来看下表

SQL学习之数据列去空格函数

1.LTRIM()---去掉列值左边的空格  如下代码: select * from dbo.course where tno='t003' and cno='c0013' 我们发现这条行数据的cname列值最左侧存在一个空格,为了数据的准确性,我们现在需要去掉空格,下面是解决代码: select LTRIM(cname),cno,tno from dbo.course where tno='t003' and cno='c0013' 2.RTRIM()---去掉列值右边的空格 ---作用和LT

SQL SERVER 2012 第三章 T-SQL 基本语句 group by 聚合函数

select Name,salesPersonID From Sales.store where name between 'g' and 'j' and salespersonID > 283 order by salespersonid,name desc/ASC 本语句的between的用法还是很有新意的,这个between是g开头和j开头之间的,不知道汉字会是什么情况? group by,经常配合min max sum avg,配合AS命名别名.group by配合聚合函数是常用的. c

SQL Server的各种聚合函数

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下: 1. AVG 返回指定组中的平均值,空值被忽略. 例:select prd_no,avg(qty) from sales group by prd_no 2. COUNT 返回指定组中项目的数量. 例:select count(prd_no) from sales 3. MAX 返回指定数据的最大值. 例:select prd_

【SQL】CLR聚合函数什么鬼

之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣鼓一番,有些心得,记录如下. 一.杂项 CLR聚合函数在SQL中虽然是函数,但在C#中实际上是以一个类或结构的形式存在的(是的,实现聚合函数的实体可以是结构,也可以是类),这点有别于CLR普通函数,后者是类中的一个方法,鉴于此,下文把实现聚合函数的类或结构统称为聚合类,以免读者思维混淆 聚合类必须用特性[SqlUserDefinedAgg

Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations

一.简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate() val empDF = spark.read.json("/usr/file/json/emp.json"