使用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)

版权声明:本文为klb561原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/klb561/p/9211374.html