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