所谓的聚合函数,就是多行数据查询,返回一条结果。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