avg最多用多少列 mysql_MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)
1.首先我們需要了解下什么是聚合函數(shù)
聚合函數(shù)aggregation function又稱為組函數(shù)。認(rèn)情況下 聚合函數(shù)會(huì)對(duì)當(dāng)前所在表當(dāng)做一個(gè)組進(jìn)行統(tǒng)計(jì)。
2.聚合函數(shù)的特點(diǎn)
1.每個(gè)組函數(shù)接收一個(gè)參數(shù)(字段名或者表達(dá)式)統(tǒng)計(jì)結(jié)果中默認(rèn)忽略字段為NULL的記錄
2.要想列值為NULL的行也參與組函數(shù)的計(jì)算,必須使用IFNULL函數(shù)對(duì)NULL值做轉(zhuǎn)換。
3.不允許出現(xiàn)嵌套 比如sum(max(xx))
3.聚合函數(shù) count(),求數(shù)據(jù)表的行數(shù)
4.聚合函數(shù) max(),求某列的最大數(shù)值
5.聚合函數(shù)min(),求某列的最小值
6.聚合函數(shù)sum(),對(duì)數(shù)據(jù)表的某列進(jìn)行求和操作
7.聚合函數(shù)avg(),對(duì)數(shù)據(jù)表的某列進(jìn)行求平均值操作
8.聚合函數(shù)和分組一起使用
總結(jié):
MySQL的聚合函數(shù)和我們?nèi)粘ffice表使用的一些對(duì)表的操作的方法大致相同,在工作中主要配合分組使用
=====================================================
一、聚合函數(shù)(aggregation function)---也就是組函數(shù)
在一個(gè)行的集合(一組行)上進(jìn)行操作,對(duì)每個(gè)組給一個(gè)結(jié)果。
常用的組函數(shù):
①每個(gè)組函數(shù)接收一個(gè)參數(shù)
②默認(rèn)情況下,組函數(shù)忽略列值為null的行,不參與計(jì)算
③有時(shí),會(huì)使用關(guān)鍵字distinct剔除字段值重復(fù)的條數(shù)
注意:
1)當(dāng)使用組函數(shù)的select語(yǔ)句中沒有g(shù)roup by子句時(shí),中間結(jié)果集中的所有行自動(dòng)形成一組,然后計(jì)算組函數(shù);
2)組函數(shù)不允許嵌套,例如:count(max(…));
3)組函數(shù)的參數(shù)可以是列或是函數(shù)表達(dá)式;
4)一個(gè)SELECT子句中可出現(xiàn)多個(gè)聚集函數(shù)。
table test
Field
Type
Null
Key
Default
Extra
id
int(11)
NO
PRI
NULL
auto_increment
name
char(50)
NO
NULL
age
int(11)
NO
NULL
school
char(50)
YES
NULL
(一)AVG()函數(shù)
AVG()通過對(duì)表中行數(shù)計(jì)數(shù)并計(jì)算特定列值之和,從而求得該列的平均值。
例如:SELECT? AVG(age)? AS? avg_age? FROM test;
此語(yǔ)句返回表test中所有age的平均值。
例如:SELECT AVG(age) AS? avg_age FROM? test WHERE name="john";
此語(yǔ)句返回表test中name=john的age的平均值。
注:AVG只能確定特定數(shù)值列的平均值,而且列名必須作為函數(shù)參數(shù)給出。為了獲得多個(gè)列的平均值,必須使用多個(gè)avg函數(shù)。而且avg函數(shù)會(huì)忽略列值為NULL的行。
(二)COUNT()函數(shù)
COUNT()函數(shù)進(jìn)行計(jì)數(shù)。可利用COUNT()函數(shù)確定表中行的數(shù)目或者符合特定條件的行的數(shù)目。
COUNT()有兩種使用方式:
1.使用COUNT(*)對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù),不管表列中包含的是空值(NULL)還是非空值。
2.使用COUNT(column)對(duì)特定列中具有值的行進(jìn)行計(jì)數(shù),忽略NULL值。
例如 SELECT COUNT(*)? AS num_test? FROM test;
此語(yǔ)句對(duì)表test所有行進(jìn)行計(jì)數(shù),返回表的總行數(shù),不管行中各列有什么值。
例如 SELECT COUNT(school) FROM test;
此語(yǔ)句只對(duì)school列中有值的行進(jìn)行計(jì)數(shù),忽略null行。
(三)MAX()函數(shù)
MAX()函數(shù)返回指定列中的最大值。MAX()要求指定列名。
例如SELECT MAX(age) FROM test;
此語(yǔ)句返回表test中age的最大值。
注:MAX()函數(shù)忽略值為NULL的行。
(四)MIN()函數(shù)
MIN()函數(shù)返回指定列的最小值,MIN()要求指定列名。
例如 SELEC? MIN(age)? FROM test;
此語(yǔ)句返回最小的age值。
注:MIN()函數(shù)忽略列值為NULL的行。
(五)SUM()函數(shù)
SUM()函數(shù)來返回指定列值的和(總計(jì))。
SELECT? SUM(age)FROM test;
此語(yǔ)句返回age列所有值之和。
注:SUM函數(shù)忽略列值為NULL的行。SUM也可以用來合計(jì)計(jì)算值,SUM(price*count)。
(六)聚集不同值
對(duì)以上5個(gè)聚集函數(shù)都可以如下使用:
1.對(duì)所有行執(zhí)行計(jì)算,指定ALL參數(shù)或者不給參數(shù)(ALL參數(shù)是默認(rèn)的)
2.只包含不同的值,指定DISTINCT參數(shù)
例如SELECT? AVG(DISTINCT age)?FROM test;
此語(yǔ)句返回age值不同的所有age值的平均值。
注:DISTINCT只能用在列名前面,不能用在表達(dá)式前。
總結(jié)
以上是生活随笔為你收集整理的avg最多用多少列 mysql_MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpStrom编辑器常用功能教程
- 下一篇: C++学习之CodeBlocks安装与调