MySQL之匯總數據(AVG,COUNT,MAX,MIN,SUM)


  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()函數

AVG()通過對表中行數計數並計算特定列值之和,從而求得該列的平均值。

例如: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只能確定特定數值列的平均值,而且列名必須作為函數參數給出。為了獲得多個列的平均值,必須使用多個avg函數。而且avg函數會忽略列值為NULL的行。

 

(二)COUNT()函數

COUNT()函數進行計數。可利用COUNT()函數確定表中行的數目或者符合特定條件的行的數目。

COUNT()有兩種使用方式:

1.使用COUNT(*)對表中行的數目進行計數,不管表列中包含的是空值(NULL)還是非空值。

2.使用COUNT(column)對特定列中具有值的行進行計數,忽略NULL值。

例如 SELECT COUNT(*)  AS num_test  FROM test;

此語句對表test所有行進行計數,返回表的總行數,不管行中各列有什么值。

 

例如 SELECT COUNT(school) FROM test;

此語句只對school列中有值的行進行計數,忽略null行。

 

(三)MAX()函數

MAX()函數返回指定列中的最大值。MAX()要求指定列名。

例如SELECT MAX(age) FROM test;

此語句返回表test中age的最大值。

注:MAX()函數忽略值為NULL的行。

 

(四)MIN()函數

MIN()函數返回指定列的最小值,MIN()要求指定列名。

例如 SELEC  MIN(age)  FROM test;

此語句返回最小的age值。

注:MIN()函數忽略列值為NULL的行。

 

(五)SUM()函數

SUM()函數來返回指定列值的和(總計)。

SELECT  SUM(age)FROM test;

此語句返回age列所有值之和。

注:SUM函數忽略列值為NULL的行。SUM也可以用來合計計算值,SUM(price*count)。

 

(六)聚集不同值

對以上5個聚集函數都可以如下使用:

1.對所有行執行計算,指定ALL參數或者不給參數(ALL參數是默認的)

2.只包含不同的值,指定DISTINCT參數

例如SELECT  AVG(DISTINCT age) FROM test;

此語句返回age值不同的所有age值的平均值。

注:DISTINCT只能用在列名前面,不能用在表達式前。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM