以姓名为基准,Oracle分组探索(oracle以姓名分组)

以姓名为基准,Oracle分组探索

在Oracle数据库中,分组是一种常见的操作,它将数据根据指定的列进行分组,并对每组数据进行聚合计算。在本文中,我们将以姓名为基准,使用Oracle的分组功能来探索数据库的数据。我们将通过一些基本的SQL查询语句和代码示例,展示如何利用分组功能来了解数据的分布情况和特征。

我们需要创建一个包含姓名、年龄、性别和分数的表来模拟我们的数据集。下面是创建和插入数据的SQL代码:

CREATE TABLE student(
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3) NOT NULL,
gender VARCHAR2(10) NOT NULL,
score NUMBER(3) NOT NULL
);
INSERT INTO student VALUES(1, 'Tom', 18, 'male', 80);
INSERT INTO student VALUES(2, 'Jerry', 19, 'male', 85);
INSERT INTO student VALUES(3, 'Lucy', 17, 'female', 90);
INSERT INTO student VALUES(4, 'Lily', 18, 'female', 75);
INSERT INTO student VALUES(5, 'Bob', 19, 'male', 88);
INSERT INTO student VALUES(6, 'Kate', 17, 'female', 92);
INSERT INTO student VALUES(7, 'John', 18, 'male', 83);
INSERT INTO student VALUES(8, 'Rose', 19, 'female', 95);
INSERT INTO student VALUES(9, 'David', 20, 'male', 77);
INSERT INTO student VALUES(10, 'Amy', 21, 'female', 86);

我们可以利用分组和聚合的功能,对数据进行一些统计和分析。例如,我们可以使用如下的查询语句,统计不同性别的学生人数和平均分数:

SELECT gender, COUNT(*), AVG(score) FROM student GROUP BY gender;

输出结果如下:

GENDER    COUNT(*) AVG(SCORE)
-------- -------- ----------
female 4 88.25
male 6 83.33

从结果可以看出,女生的平均分数高于男生,但是样本数量较少,因此需要进一步验证。我们可以通过增加过滤条件,只统计年龄大于等于18岁的学生:

SELECT gender, COUNT(*), AVG(score) FROM student WHERE age >= 18 GROUP BY gender;

输出结果如下:

GENDER    COUNT(*) AVG(SCORE)
-------- -------- ----------
female 2 85.00
male 4 83.75

从结果可以看出,女生和男生的平均分数差距不大,均在80分以上。但是,女生的样本数量较少,因此不能得出显著的结论。我们还可以利用分组和聚合的功能,进一步分析不同年龄段的学生的分数分布情况:

SELECT CASE
WHEN age
WHEN age BETWEEN 18 AND 20 THEN '18-20'
ELSE 'above 20'
END AS age_group,
COUNT(*),
MIN(score),
MAX(score),
AVG(score)
FROM student
GROUP BY CASE
WHEN age
WHEN age BETWEEN 18 AND 20 THEN '18-20'
ELSE 'above 20'
END;

输出结果如下:

AGE_GROUP COUNT(*) MIN(SCORE) MAX(SCORE) AVG(SCORE)
--------- -------- ---------- ---------- ----------
18-20 6 75 88 81.333333
above 20 1 77 77 77.000000
under 18 3 80 92 87.333333

从结果可以看出,年龄在18-20岁之间的学生最多,占了60%左右,平均分数也较为稳定。而年龄在20岁以上的学生较少,分数较为集中。年龄在18岁以下的学生只有3个样本,不具有代表性。

在本文中,我们利用Oracle的分组和聚合功能,对一个简单的数据集进行了统计和分析。我们可以通过增加过滤条件和多重分组,来进一步深入研究数据的特征和变化趋势。相信这些基本的查询技巧对于日常的数据处理和分析都会有所帮助。


数据运维技术 » 以姓名为基准,Oracle分组探索(oracle以姓名分组)