快捷搜索:
来自 网络数据库 2019-09-23 12:16 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

SQL必知必会,MySQL必知必会之分组数据

正文将介绍如何分组数据,以便能汇总表内容的子集,那关乎四个新SELECT语句子句,分别是 GROUP BY 子句和HAVING子句。

晤面函数

图片 1

1.AVG()函数

输入:SELECT AVG(prod_price) AS avg_price FROM Products

输出:

图片 2

告诫:只用于单个列
AVG()只可以用来明确特定数值列的平均值,何况列名必需作为函数参数给出。为了博取四个列的平均值,必须选拔八个AVG()函数。
说明:NULL值
AVG()函数忽略列值为NULL的行。

2.**COUNT()**函数

输入:SELECT COUNT(*) AS num_cust FROM Customers

输出:

图片 3

说明:NULL值
假如钦定列名,则COUNT()函数会忽略钦赐列的值为空的行,但假如COUNT()函数中用的是星号(*),则不忽视。

3.**MAX()**函数

MAX()重返钦命列中的最大值。 

输入:SELECT MAX(prod_price) AS max_price FROM Products

输出:

图片 4

指示:对非数值数据利用MAX()
虽说MAX()一般用来找寻最大的数值或日期值,但广大(并非全数)DBMS允许将它用来回到任性列中的最大值,富含重返文本列中的最大值。在用来文书数据时,MAX()重返按该列排序后的结尾一行。
说明:NULL值
MAX()函数忽略列值为NULL的行。

4.MIN()函数

MIN()的成效正好与MAX()功能相反,它回到内定列的小不点儿值。 

5.**SUM()**函数

SUM()用来回到钦命列值的和(计算)。 

1.1 创设分组

分组是在SELECT语句的GROUP BY子句中树立的。

输入:

SELECT vend_id,COUNT(*) AS num_prods
FROM products
GROUP BY vend_id

输出:

vend_id num_prods
1001 3
1002 2
1003 7
1005 2

剖析:上边的SELECT语句内定了三个列,vend_id包括产品经销商ID,num_prods为计算字段(**用COUNT(*)函数创设**)GROUP BY 子句提示MySQL按vend_id排序并分组数据。那导致对每一种vend_id并不是整整表总括num_prods贰回。从出口看出,供应上1001有3个产品,中间商1002有2个产品,经销商1003有7个产品,而经销商1005有2个产品。

利用GROUP BY子句以前,须要知道有个别首要规定:

  1. GROUP BY 子句能够包罗自由数指标列。这使得能对分组实行嵌套,为数据分组提供更留意的操纵。
  2. 假诺在GROUP BY子句中嵌套了分组,数据将要最后鲜明的分组上扩充聚焦。换句话说,在确立分组时,钦赐的全体类都共同总结(所以无法从各自的列取回数据)。
  3. GROUP BY 子句中列出的各种列都必需是搜索列或有效的表明式(但无法是集合函数)。假使在SELECGT中动用表明式,则必需在GROUP BY子句中钦点同样的表明式。不可能应用外号。
  4. 除集中计算语句外,在SELECT中的每一个列都必得在GROUP BY子句中提交。
  5. 如果分组类中全数NULL值,则NULL将Infiniti五个分组重临。假诺类中有多行NULL值,他们将分为一组。
  6. GROUP BY 子句必得现身在WHERE子句之后,O中华VDER BY 子句以前。

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:SQL必知必会,MySQL必知必会之分组数据

关键词: