汇总数据

来源:互联网 发布:客餐厅装饰画淘宝网 编辑:程序博客网 时间:2024/05/17 12:48

2016.12.1

十.汇总数据

汇总数据也称为聚合,它表示“合并到组中”。

10.1消除重复DISTINCT

这是汇总数据最基本的方法。

SELECT

DISTINCT

Columnlsit

FROM table

ORDER BY columnlist

DISTINCT总是出现在SELECT之后。DISTINCT表示只会返回后面的columnlist的列值唯一的那些行。

10.2 聚合函数

在第四篇中说的那些函数是标量函数,那些函数只能对单个的数或者值进行计算。聚合函数可以用于分组数据,常用的聚合函数有COUNT,SUM,AVG,MIN,MAX。它们提供了对分组数据进行计数,加权,取最小值,取最大值的方法。

SELECT

SUM(column) AS ’name 1’

AVG(column) AS ’name 2’

MIN(column) AS ’name 3’

MAX(column) AS ’name 4’

FROM table

WHERE condition

COUNT函数是用来返回所有选中行的数目,而不是任何特定列的值。

SELECT

COUNT(*) AS ‘name’

FROM table

WHERE condition

圆括号中的星号表示选中行“所有列”,返回的是行的数目。

SELECT

COUNT(column) AS ‘name’

FROM table

WHERE condition

也可以使用关键字DISTINCT.

SELECT

COUNT(DISTINCT column) AS ‘name’

FROM table

WHERE condition

10.3 分组数据

一旦数据分组,就可以使用聚合函数对可以计算和比较的每一组进行汇总统计了。

SELECT

columnlist

AVG/SUM/MIN/MAX(column)

FROM table

GROUP BY column

ORDER BY column

SELECT后面的columlist中的列要么是GROUP BY子句中出现的列,要么是聚合函数中出现的列。

10.4 多列和排序

SELECT

columnlist

AVG/SUM/MIN/MAX(column)

FROM table

GROUP BY column1,column2

ORDER BY column,column2

GROUP BY子句中的列的顺序没有意义,但ORDER BY子句中是有意义的。

10.5 基于聚合查询条件

数据分组后,针对带GROUP BY子句的SELECT句子应用任何查询条件时,必须要知道查询的条件是单独的行还是整个组。

WHERE子句是对单独的行执行查询条件。要对整个组执行查询添加条件要使用HAVING子句。

SELECT

columnlist

FROM tablist

WHERE condition

GROUP BY columnlist

HAVING condition

ORDER BY columnlist

 

0 0
原创粉丝点击