Oracle五个分组函数的运用
在使用Oracle数据库时,经常需要对数据进行聚合分析,这时就需要用到Oracle提供的分组函数。下面介绍五个常用的分组函数。
1. COUNT
这是最常见的分组函数之一,用于统计某一列的行数。例如:
SELECT COUNT(*) FROM table_name;
这将统计表table_name中所有行的数量。
另外,COUNT还有一些其他的用法,比如:
– 统计某一列中非NULL值的数量,使用COUNT(column_name);
– 统计满足条件的行数,使用COUNT(CASE WHEN condition THEN 1 END)。
2. SUM
SUM用于计算某一列的总和。例如:
SELECT SUM(salary) FROM employee;
将统计employee表中所有员工的薪资总和。
3. AVG
AVG用于计算某一列的平均值。例如:
SELECT AVG(score) FROM student;
将统计student表中所有学生的成绩的平均值。
4. MAX
MAX用于获取某一列中的最大值。例如:
SELECT MAX(height) FROM person;
将统计person表中所有人的最大身高。
5. MIN
MIN用于获取某一列中的最小值。例如:
SELECT MIN(age) FROM student;
将统计student表中所有学生的最小年龄。
这些分组函数可以很好地帮助我们进行数据聚合分析,从而更好地理解数据。但需要注意的是,在使用这些函数时要注意参数的数据类型,例如SUM函数只能用于数值类型的列,否则会出错。
代码示例:
CREATE TABLE student
(
id INT PRIMARY KEY,
name VARCHAR2(20) NOT NULL,
age INT,
score INT
);
— 插入数据
INSERT INTO student VALUES (1, ‘Tom’, 20, 80);
INSERT INTO student VALUES (2, ‘Jerry’, 23, 85);
INSERT INTO student VALUES (3, ‘Lucy’, 21, 90);
INSERT INTO student VALUES (4, ‘Mike’, 22, 75);
— 统计平均分
SELECT AVG(score) FROM student;
— 统计年龄最小的学生
SELECT name, MIN(age) FROM student;
— 统计分数大于80的学生人数
SELECT COUNT(CASE WHEN score > 80 THEN 1 END) FROM student;
— 统计不同年龄的学生人数
SELECT age, COUNT(*) FROM student GROUP BY age;
— 统计不同年龄的学生人数,结果按人数降序排列
SELECT age, COUNT(*) FROM student GROUP BY age ORDER BY COUNT(*) DESC;
— 清空数据
TRUNCATE TABLE student;