My SQL函数

本文介绍了SQL中的五种常用聚合函数:COUNT、SUM、AVG、MAX和MIN的使用方法及应用场景。COUNT函数用于统计记录数量;SUM函数计算字段值总和;AVG函数求平均值;MAX函数获取最大值;MIN函数查找最小值。文章还详细说明了这些函数如何与DISTINCT关键字结合使用以过滤重复数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数是SQL里的关键字,用于对字段里的数据进行操作,通常与字段名称名称或表达式联合使用,处理输入的数据并产生结果。

COUNT
SUM
MAX
MIN
AVG

1.COUNT 函数用于统计不包含NULL值的记录或字段值,用于查询之中时,它返回一个数值。它也可以与DISTINCT命令一起使用,从而只统计数据集里不同的记录数值。

COUNT[(*)|(DISTINCT | ALL)] (COLUMN NAME)

COUNT(*)会统计表里的全部记录数量,包括重复的,也包含NULL值。
命令ALL是默认的,在语句中不用明确指定。

下面的语句统计全部雇员ID:

SELECT COUNT (EMPLOYEE_ID) FROM EMPLOYEE_PAY_ID

下面的语句只统计SALARY不相同的行

SELECT COUNT (DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL

下面的语句统计表EMPLOYEE_TBL的全部行

SELECT COUNT(*) FROM EMPLOYEE_TBL

下面的语句统计EMPLOYEE_TBL的全部行

SELECT COUNT(*) FROM EMPLOYEE_TBL

2.SUM函数返回一组记录中某一个字段值的总和,可以与DISTINCT一起使用,这时只会计算不重复记录之和。

SUM ([ DISTINCT ] COLUMN NAME)

3.AVG函数可以计算一组指定记录的平均值,可以与DISTINCT一起使用,这时返回不重复记录的平均值。

AVG([ DISTINCT ] COLUMN NAME ) # 参数必须为数值型

4.MAX函数
返回一组记录中某个字段的最大值,NULL值不在计算范围之内。

MAX(COLUMN NAME)

5.MIN函数
返回一组记录里某个字段的最小值,NULL值不在计算之内。

MIN(COLUMN_NAME)

### 关于 SQL 函数的使用教程和示例 #### 一、SQL 函数概述 SQL 提供了多种内置函数来简化查询过程并增强其功能。这些函数可以分为以下几类[^2]: - **聚合函数**: 返回一组值的汇总结果,例如 `SUM()`、`AVG()`、`COUNT()` 等。 - **转型函数**: 将数据从一种类型转换为另一种类型,例如 `CAST()` 和 `CONVERT()`。 - **日期函数**: 处理日期和时间的数据,例如 `GETDATE()`、`DATEDIFF()` 等。 - **数学函数**: 执行数值计算,例如 `ABS()`、`ROUND()`、`SQRT()` 等。 - **字符串函数**: 对字符型数据进行操作,例如 `SUBSTRING()`、`REPLACE()`、`UPPER()` 等。 - **系统函数**: 获取有关数据库的信息或其他元数据,例如 `SUSER_NAME()`、`DB_NAME()` 等。 --- #### 二、常见 SQL 函数及其示例 ##### 1. 聚合函数 用于统计分析的一组记录的结果: ```sql -- 计算表中某一列的总和 SELECT SUM(column_name) AS total_sum FROM table_name; -- 统计某列的平均值 SELECT AVG(column_name) AS average_value FROM table_name; ``` ##### 2. 转型函数 将数据类型从一种形式转换为另一种形式: ```sql -- 使用 CAST() 进行显式类型转换 SELECT CAST('123' AS INT); -- 使用 CONVERT() 实现更灵活的转换 SELECT CONVERT(VARCHAR(10), GETDATE(), 101); ``` ##### 3. 日期函数 处理日期和时间的操作: ```sql -- 获取当前日期和时间 SELECT GETDATE(); -- 计算两个日期之间的天数差 SELECT DATEDIFF(day, '2023-01-01', '2023-12-31'); ``` ##### 4. 数学函数 执行基本或复杂的数学运算: ```sql -- 取绝对值 SELECT ABS(-10); -- 四舍五入到指定的小数位数 SELECT ROUND(123.45678, 2); ``` ##### 5. 字符串函数 对文本数据进行修改或提取: ```sql -- 截取子字符串 SELECT SUBSTRING('Hello World', 7, 5); -- 输出 "World" -- 替换字符串中的部分内容 SELECT REPLACE('Hello World', 'World', 'Universe'); -- 输出 "Hello Universe" ``` ##### 6. 系统函数 获取数据库环境的相关信息: ```sql -- 获取当前用户的登录名 SELECT SUSER_NAME(); -- 查询当前数据库名称 SELECT DB_NAME(); ``` --- #### 三、Flink Table API 和 SQL 中的自定义函数 除了标准 SQL 函数外,在大数据场景下(如 Apache Flink),还可以通过扩展机制创建自定义函数。以下是基于 Flink 的简单实现案例[^1]: 假设我们已经编写了一个简单的 Java 自定义标量函数 `MyCustomFunction` 并将其注册到了 Flink SQL Client 中,则可以通过如下方式调用它: ```java // 注册自定义函数 (Java 示例) tableEnv.createTemporarySystemFunction( "my_custom_function", MyCustomFunction.class ); ``` 随后可以在 SQL 查询中像其他内置函数一样使用该函数: ```sql SELECT my_custom_function(column_name) FROM table_name; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值