標籤:items 產品 預設 span 產生 cts 標準 上進 函數
一、AVG()函數
A VG()通過對錶中行數計數並計算其列值之和,求得該列的平均值。A VG()可用來返回所有列的平均值,也可以用來返回特定列或行的平均值。
警告:只用於單個列
AVG()只能用來確定特定數值列的平均值,而且列名必須作為函數參數給出。為了獲得多個列的平均值,必須使用多個A VG()函數。
說明:NULL值
A VG()函數忽略列值為NULL的行。
二、COUNT()函數
COUNT()函數進行計數。可利用COUNT()確定表中行的數目或符合特定條件的行的數目。
COUNT()函數有兩種使用方式:
使用COUNT(*)對錶中行的數目進行計數,不管表列中包含的是空值(NULL)還是非空值。
使用COUNT(column)對特定列中具有值的行進行計數,忽略NULL值。
SELECT COUNT(*) AS num_custFROM Customers;
輸出▼num_cust--------5
分析▼
在此例子中,利用COUNT(*)對所有行計數,不管行中各列有什麼值
SELECT COUNT(cust_email) AS num_custFROM Customers;
輸出▼num_cust--------3
分析▼
這條SELECT語句使用COUNT(cust_email)對cust_email列中有值的行進行計數。在此例子中,cust_email的計數為3(表示5個顧客中只有3個顧
客有電子郵件地址)。
說明:NULL值
如果指定列名,則COUNT()函數會忽略指定列的值為空白的行,但如果COUNT()函數中用的是星號(*),則不忽略。
三、MAX()函數
MA X()返回指定列中的最大值。MA X()要求指定列名,
提示:對非數值資料使用MAX()
雖然MA X()一般用來找出最大的數值或日期值,但許多(並非所有)DBMS允許將它用來返回任意列中的最大值,包括返迴文本列中的最大
值。在用於文本資料時,MA X()返回按該列排序後的最後一行。
說明:NULL值
MA X()函數忽略列值為NULL的行。
四、MIN()函數
MIN()的功能正好與MA X()功能相反,它返回指定列的最小值。與MA X()一樣,
提示:對非數值資料使用MIN()
雖然MIN()一般用來找出最小的數值或日期值,但許多(並非所有)DBMS允許將它用來返回任意列中的最小值,包括返迴文本列中的最小
值。在用於文本資料時,MIN()返回該列排序後最前面的行。
說明:NULL值
MIN()函數忽略列值為NULL的行。
五、SUM()函數
SUM()用來返回指定列值的和(總計)。
提示:在多個列上進行計算
利用標準的算術操作符,所有聚集合函式都可用來執行多個列上的計算。
說明:NULL值
SUM()函數忽略列值為NULL的行。
六、聚集不同值
以上5個聚集合函式都可以如下使用:
- 對所有行執行計算,指定A LL參數或不指定參數(因為A LL是預設行為)。
- 只包含不同的值,指定DISTINCT參數。
提示:ALL為預設
A LL參數不需要指定,因為它是預設行為。如果不指定DISTINCT,則假定為A LL。
說明:不要在Access中使用
Microsoft Access在聚集合函式中不支援DISTINCT,因此下面的例子不適合於Access。要在Access得到類似的結果,需要使用子查詢
把DISTINCT資料返回到外部SELECT COUNT(*)語句。
SELECT AVG(DISTINCT prod_price) AS avg_priceFROM ProductsWHERE vend_id = ‘DLL01‘;
分析▼
在使用了DISTINCT後,結果可能會發生變化。排除它們重複值提升或降低了平均值。
警告:DISTINCT不能用於COUNT(*)
如果指定列名,則DISTINCT只能用於COUNT()。DISTINCT不能用於COUNT(*)。類似地,DISTINCT必須使用列名,不能用於計算或表達
式。
提示:將DISTINCT用於MIN()和MAX()
雖然DISTINCT從技術上可用於MIN()和MA X(),但這樣做實際上沒有價值。一個列中的最小值和最大值不管是否只考慮不同值,結果都是相
同的。
說明:其他聚集參數
除了這裡介紹的DISTINCT和A LL參數,有的DBMS還支援其他參數,如支援對查詢結果的子集進行計算的TOP和TOP PERCENT。為瞭解具
體的DBMS支援哪些參數,請參閱相應的文檔。
七、組合聚集合函式
SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min,MAX(prod_price) AS price_max,AVG(prod_price) AS price_avgFROM Products;
分析▼
這裡用單條SELECT語句執行了4個聚集計算,返回4個值(Products表中物品的數目,產品價格的最高值、最低值以及平均值)。
警告:取別名
在指定別名以包含某個聚集合函式的結果時,不應該使用表中實際的列名。雖然這樣做也算合法,但許多SQL實現不支援,可能會產生模糊的
錯誤訊息。
8.聚集合函式 ---SQL