梧桐数据库聚合函数使用举例

news/2024/11/8 18:29:12 标签: 数据库, oracle, sql

在数据分析和数据库管理中,聚合函数是一类非常重要的工具,它们能够对数据集进行计算并返回单个结果。梧桐数据库提供了丰富的聚合函数,这些函数可以帮助我们快速地对数据进行汇总、分析和处理。本文将介绍梧桐数据库中一些常用的聚合函数及其使用示例,包括创建表、查询 SQL 以及执行结果,以帮助您更有效地利用这些强大的工具。

创建表

首先,我们需要创建一个 employees 表来存储员工信息。

CREATE TABLE employees (
    employee_id SERIAL,
    name VARCHAR(100),
    salary NUMERIC(10, 2),
    department_id INTEGER
);

执行结果:

CREATE TABLE

插入测试数据

接下来,我们插入一些测试数据以便进行聚合函数的演示。

INSERT INTO employees (name, salary, department_id) VALUES
('John Doe', 5000.00, 1),
('Jane Smith', 6000.00, 1),
('Emily Jones', 5500.00, 2),
('Michael Brown', 7000.00, 2),
('David Wilson', 4500.00, 1);

执行结果:

INSERT 0 5

COUNT():计算行数

COUNT() 函数用于计算集合中的行数,不论列值是否为 NULL。

SELECT COUNT(*) FROM employees;
-- 计算员工总数

执行结果:

 count
-------
     5
(1 row)
SELECT COUNT(DISTINCT department_id) FROM employees;
-- 计算不同部门的数量

执行结果:

 count
-------
     2
(1 row)

SUM():计算总和

SUM() 函数用于计算数值列的总和,非常适合财务和统计分析。

SELECT SUM(salary) FROM employees;
-- 计算所有员工的薪资总和

执行结果:

 sum
-------
 24000
(1 row)

AVG():计算平均值

AVG() 函数用于计算数值列的平均值,是分析数据分布的常用函数。

SELECT AVG(salary) FROM employees;
-- 计算所有员工的薪资平均值

执行结果:

    avg
-----------
 4800.000
(1 row)

MAX() 和 MIN():找出最大值和最小值

MAX()MIN() 函数分别用于找出数值列的最大值和最小值,常用于识别数据范围。

SELECT MAX(salary), MIN(salary) FROM employees;
-- 找出薪资最高和最低的员工

执行结果:

 max  | min
-------+-------
 7000  | 4500
(1 row)

STRING_AGG():字符串连接

STRING_AGG() 函数可以将多行的字符串值连接成一个字符串,并允许指定分隔符。

SELECT STRING_AGG(name, ', ') FROM employees;
-- 将所有员工的名字用逗号分隔连接成一个字符串

执行结果:

   string_agg
--------------
 John Doe, Jane Smith, Emily Jones, Michael Brown, David Wilson
(1 row)

ARRAY_AGG():数组聚合

ARRAY_AGG() 函数将多行的值聚合成一个数组,适用于需要将结果集作为数组处理的场景。

SELECT ARRAY_AGG(department_id) FROM employees;
-- 将所有员工的部门 ID 聚合成一个数组

执行结果:

 array_agg
-----------
 {1, 1, 2, 2, 1}
(1 row)

使用聚合函数进行分组

聚合函数常与 GROUP BY 子句一起使用,以对特定分组的数据进行聚合计算。

SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id;
-- 按部门分组计算每个部门的薪资平均值

执行结果:

 department_id | avg
---------------+-------
             1 | 5166.67
             2 | 6166.67
(2 rows)

HAVING 子句与聚合函数

HAVING 子句用于对聚合后的结果进行过滤,它允许我们在聚合函数的基础上进行更细致的数据筛选。

SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id HAVING AVG(salary) > 5000;
-- 找出平均薪资超过 5000 的部门

执行结果:

 department_id | avg
---------------+-------
             2 | 6166.67
(1 row)

梧桐数据库的聚合函数不仅功能强大,而且使用灵活,能够满足各种复杂的数据分析需求。无论是简单的行数统计还是复杂的数据汇总,这些聚合函数都是您在数据库操作中不可或缺的工具。在实际应用中,您可以根据具体的业务逻辑和数据结构选择合适的聚合函数,以实现高效的数据管理和分析。


http://www.niftyadmin.cn/n/5744285.html

相关文章

数据中异常值的鉴定和处理(1)

数据预处理中最不想碰到但又绕不过的一个问题是异常样品的鉴定和处理。异常样本,也称为离群样本,其定义是与其它样本有显着差异的样本。通常是由实验操作失败、样本受损等不易发现的外部因素引起,比如样本被污染了、细胞死亡了、细胞破损了、…

机器学习与深度学习-1-线性回归从零开始实现

机器学习与深度学习-1-线性回归从零开始实现 1 前言 ​ 内容来源于沐神的《动手学习深度学习》课程,本篇博客对线性回归从零开始实现(即不调用封装好的库,如SGD优化器、MSE损失函数等)进行重述,并且修改了沐神的课堂…

【bug日志-水】解决本地开发下代理和url同名导致刷新404的问题

bug描述 在本地开发,并且路由是history的模式下,代理和url同名的情况下,刷新会404。 {path: /googleAds,//如果有个代理也叫googleAds,刷新时就会404name: googleAds,icon: sound,routes: [{path: /googleAds/GoogleAdsSettingPag…

MybatisPlus入门(九)MybatisPlus-DML编程控制

增删改 Insert Delete Update 操作中的一些问题。 一、主键生成策略 增加的时候主键生成的问题,不同的环境、不同的场景对应的主键生成策略可能是不一样的,比如日志表、购物订单表、外卖单。 主键生成策略设置方法: 示例代码: p…

qt QPixmapCache详解

1、概述 QPixmapCache是Qt框架中提供的一个功能强大的图像缓存管理工具类。它允许开发者在全局范围内缓存QPixmap对象,从而有效减少图像的重复加载,提高图像加载和显示的效率。这对于需要频繁加载和显示图像的用户界面应用来说尤为重要,能够…

vue种ref跟reactive的区别?

‌Vue中的ref和reactive的主要区别在于它们处理的数据类型、实现原理以及使用方式。‌ 处理的数据类型 ‌ref‌:可以处理基本数据类型(如数字、字符串、布尔值)和对象。ref通过Object.defineProperty()的get和set方法来实现响应式&#xff…

11.07学习

一、三中代码解决鸡兔同笼问题 1.直接解方程 #include <stdio.h> int main() { int heads, feet, chickens, rabbits; printf("请输入总头数&#xff1a;"); scanf("%d", &heads); printf("请输入总脚数&#xff1a;"); scanf(…

MySQL分组查询

问题&#xff1a;查询员工表中,每个不同部门分别的平均工资 分组查询&#xff1a;group by关键字实现分组,group by放在where条件语句之后,order by放置中group by的后面,一会儿还会学到的having关键字,总体的循序先后为&#xff1a; where条件 , group by 分组语句 , having…