8.聚集合函式 ---SQL

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.