1. 程式人生 > >如何使用sql函數平均值、總數、最小值、最大值

如何使用sql函數平均值、總數、最小值、最大值

first and sum count函數 round TP rom nvl 不包含

使用sql函數,您可以在一個select語句的查詢當中,直接計算數據庫資料的平均值、總數、最小值、最大值、總和、標準差、變異數等統計。使用recordset對象時,也可使用這些sql函數。

sql函數包括如下:

avg函數:計算查詢中某一特定字段資料的算術平均值。

count函數:計算符合查詢條件的記錄數。

min, max函數:傳回指定字段之中符合查詢條件的第一條、最末條記錄的資料。

first, last函數:傳回指定字段之中符合查詢條件的最小值、最大值。

stdev函數:計算指定字段之中符合查詢條件的標準差。

sum函數:計算指定字段之中符合查詢條件的資料總和。

var,函數:計算指定字段之中符合查詢條件的變異數估計值。

ado如何使用sql函數呢?

詳細描述如下: avg函數 avg函數,計算查詢中某一特定字段資料的算術平均值。

  語法為avg(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

avg函數在計算時,不包含任何值為 null 的資料。

count函數

count函數,計算符合查詢條件的記錄條數。

  語法為count (運算式)。運算式,可為字段名稱、*、多個字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

count 函數於計算時,不包含任何值為 null 的資料。

但是,count(*) 則計算所有符合查詢條件的記錄條數,包含那些null的資料。

  如果count(字段名稱) 的字段名稱為多個字段,將字段名稱之間使用 & 分隔。

多個字段當中,至少有一個字段的值不為null的情況下,count函數才會計算為一條記錄。如果多個字段都為null,則不算是一條記錄。譬如:

select count(價格 & 代號) from 產品

first/last函數

  first函數、last函數,傳回指定字段之中符合查詢條件的第一條、最末條記錄的資料。

  語法為first(運算式) 和 last(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

min/max函數

  min函數、max函數,傳回指定字段之中符合查詢條件的最小值、最大值。

  語法為min(運算式) 和 max(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

stdev函數

stdev函數,計算指定字段之中符合查詢條件的標準差。

  語法為stdev(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

  如果符合查詢條件的記錄為兩個以下時,stdev函數將傳回一個null 值,該表示不能計算標準差。

sum函數

sum函數,計算指定字段之中符合查詢條件的資料總和。

  語法為sum(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

sum函數可使用兩個字段資料運算式,譬如計算產品的單價及數量字段的合計:

select sum(單價 * 數量) from 產品

var函數

var函數,計算指定字段之中符合查詢條件的變異數估計值。

  語法為var(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

  如果符合查詢條件的記錄為兩個以下時,var函數將傳回一個null 值,該表示不能計算變異數。

select min(c) from

(select min(b ) as c from tab_name

union

select min(a) as c from tab_name)

已知有兩張表

部門表department:部門編號 dept_id 、部門名稱 dept_name

員工表employee:員工編號 emp_id、員工姓名 emp_name、 部門編號 dept_id 、工資emp_wage

1)求各部門的平均工資

  1. select d.dept_name ,round(avg(nvl(e.emp_wage,0)),2) sal from employee e left join department d on e.dept_id=d.dept_id group by d.dept_name;

2)求各部門的總工資

  1. select d.dept_name ,sum(nvl(e.emp_wage,0)) sal from employee e left join department d on e.dept_id=d.dept_id group by d.dept_name;

3)求工資大於5000的員工所屬的部門名稱、員工id和員工工資

  1. select d.dept_name,e.emp_id,e.emp_wage from department d ,employee e where e.emp_wage>5000 and d.dept_id = e.dept_id;

涉及函數解釋:

sum為求平均值函數,將要求總和值的列sum(列名)

avg為求平均值函數,將要求平均值的列avg(列名)

nvl為如果未空則置空值為其他數據的函數,nvl(為空的列,將空值置成的其他值)

round為四舍五入函數,round(列名,保留小數位數)

oracle常見函數:平均值、總數、最小值、最大值、總和、標準差

avg函數:計算查詢中某一特定字段資料的算術平均值。

count函數:計算符合查詢條件的記錄數。

min, max函數:傳回指定字段之中符合查詢條件的第一條、最末條記錄的資料。

first, last函數:傳回指定字段之中符合查詢條件的最小值、最大值。

stdev函數:計算指定字段之中符合查詢條件的標準差。

sum函數:計算指定字段之中符合查詢條件的資料總和。

var,函數:計算指定字段之中符合查詢條件的變異數估計值。

詳細描述如下: 
avg函數 
avg函數,計算查詢中某一特定字段資料的算術平均值。

  語法為avg(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

avg函數在計算時,不包含任何值為 null 的資料。

count函數

count函數,計算符合查詢條件的記錄條數。

  語法為count (運算式)。運算式,可為字段名稱、*、多個字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

count 函數於計算時,不包含任何值為 null 的資料。

但是,count(*) 則計算所有符合查詢條件的記錄條數,包含那些null的資料。

  如果count(字段名稱) 的字段名稱為多個字段,將字段名稱之間使用 & 分隔。

多個字段當中,至少有一個字段的值不為null的情況下,count函數才會計算為一條記錄。如果多個字段都為null,則不算是一條記錄。譬如:

select count(價格 & 代號) from 產品

first/last函數

  first函數、last函數,傳回指定字段之中符合查詢條件的第一條、最末條記錄的資料。

  語法為first(運算式) 和 last(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

min/max函數

  min函數、max函數,傳回指定字段之中符合查詢條件的最小值、最大值。

  語法為min(運算式) 和 max(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

stdev函數

stdev函數,計算指定字段之中符合查詢條件的標準差。

  語法為stdev(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

  如果符合查詢條件的記錄為兩個以下時,stdev函數將傳回一個null 值,該表示不能計算標準差。

sum函數

sum函數,計算指定字段之中符合查詢條件的資料總和。

  語法為sum(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

sum函數可使用兩個字段資料運算式,譬如計算產品的單價及數量字段的合計:

select sum(單價 * 數量) from 產品

var函數

var函數,計算指定字段之中符合查詢條件的變異數估計值。

  語法為var(運算式)。運算式,可為字段名稱、運算式、或一個函數,此函數可以是一個內部或使用者定義的,但不能為其它的sql函數。

  如果符合查詢條件的記錄為兩個以下時,var函數將傳回一個null 值,該表示不能計算變異數。

select min(c) from

(select min(b ) as c from tab_name

union

select min(a) as c from tab_name)

如何使用sql函數平均值、總數、最小值、最大值