oracle之聚合函数(分组函数)详解

所谓的聚合函数,就是多行数据查询,返回一条结果。oracle中聚合函数也叫分组函数,有以下5个:

实例准备条件:

-- 建表
CREATE TABLE T_TEST(
   F_USERNAME VARCHAR(225),
   F_AGE NUMBER(3)
);
-- 插入数据
INSERT INTO T_TEST VALUES('one',1);
INSERT INTO T_TEST VALUES('two',2);
INSERT INTO T_TEST VALUES('two',2);
INSERT INTO T_TEST VALUES('three',3);
INSERT INTO T_TEST (F_AGE) VALUES(4);-- 不插入F_USERNAME,使F_USERNAME为空
COMMIT;

1.avg()

用于计算平均值,适用于数值类型。

SELECT AVG(F_AGE) FROM T_TEST;-- 2.4

2.count()

用于计算数据记录行数,适用于任何类型。

语法:

count(*) 返回记录总数

count(expr) 返回表达式expr非空的记录数目。

count(distinct(expr)) 返回表达式expr非空的,不重复的记录数目。

eg:

SELECT COUNT(*) FROM T_TEST;-- 5
SELECT COUNT(F_USERNAME) FROM T_TEST;-- 4 因为f_username有一条是空的
SELECT COUNT(DISTINCT(F_USERNAME)) FROM T_TEST;-- 3 因为f_username为two重复,只记一条,而其中4的f_username为空,不计入

3.max()

计算最大值,适用于任何类型,常用于数值类型。

SELECT MAX(F_AGE) FROM T_TEST;-- 4


4.min()

计算最小值,适用于任何类型,常用于数值类型。

SELECT MIN(F_AGE) FROM T_TEST;-- 1

5.sum()

求和,适用于数值类型。

SELECT SUM(F_AGE) FROM T_TEST;-- 12



你可能感兴趣的:(#,---Oracle)