SQL 计算函数

计算函数

在 SQL 中,计算函数用于对数据进行各种数学计算和统计分析。这些函数可以分为聚合函数和取整函数。以下是对这些函数的详细讲解。

知识点

1. 聚合函数

聚合函数用于对一组数据进行计算,返回一个单一的结果。以下是一些常用的聚合函数:

  • SUM(column):计算数值列的总和。
  • AVG(column):计算数值列的平均值。
  • COUNT(column):计算列中非 NULL 值的数量。
  • MAX(column):返回列中的最大值。
  • MIN(column):返回列中的最小值。

2. 取整函数

取整函数用于对数值进行取整操作。以下是一些常用的取整函数:

  • CEIL(number)CEILING(number):返回大于或等于给定数值的最小整数。
  • FLOOR(number):返回小于或等于给定数值的最大整数。
  • ROUND(number, decimals):将数值四舍五入到指定的小数位数。

另:在 SQL 中,CAST 函数用于将一个值显式地转换为指定的数据类型。虽然 CAST 本身不是专门的取整函数,但它可以与取整函数结合使用,以实现更灵活的数据类型转换和取整操作。

CAST(expression AS data_type)
  • expression:要转换的值或表达式。
  • data_type:目标数据类型,例如 SIGNEDDECIMALVARCHAR 等。

示例

示例 1:聚合函数

假设有一个 employees 表,包含以下数据:

employee_id first_name last_name salary department_id
1 Alice Smith 60000 101
2 Bob Johnson 70000 101
3 Charlie Brown NULL 102
4 David Davis 80000 102
5 Eve White 90000 103

计算所有员工的总工资:

SELECT SUM(salary) AS total_salary
FROM employees;

结果:

total_salary
300000

计算所有员工的平均工资:

SELECT AVG(salary) AS average_salary
FROM employees;

结果:

average_salary
75000

计算非 NULL 工资的员工数量:

SELECT COUNT(salary) AS count_salary
FROM employees;

结果:

count_salary
4

计算最高工资:

SELECT MAX(salary) AS max_salary
FROM employees;

结果:

max_salary
90000

计算最低工资:

SELECT MIN(salary) AS min_salary
FROM employees;

结果:

min_salary
60000
示例 2:取整函数

假设 employees 表包含以下数据:

employee_id first_name last_name salary
1 Alice Smith 60000
2 Bob Johnson 70000
3 Charlie Brown 55000
4 David Davis 85000
5 Eve White 95000

SQL 查询

我们将使用 CEILFLOORROUND 函数来计算每个员工工资的上限值、下限值和四舍五入值(单位:万元)。

SELECT 
    first_name, 
    last_name, 
    CEIL(salary / 10000) AS ceil_salary,
    FLOOR(salary / 10000) AS floor_salary,
    ROUND(salary / 10000) AS round_salary
FROM 
    employees;

执行结果

执行上述查询后,结果如下:

first_name last_name ceil_salary floor_salary round_salary
Alice Smith 7 6 6
Bob Johnson 8 7 7
Charlie Brown 6 5 6
David Davis 9 8 9
Eve White 10 9 10
  1. CEIL(salary / 10000)

    • 计算工资除以 10000 后的上限值,即向上取整。
    • 例如,60000 / 10000 = 6.0,向上取整为 7。
    • 55000 / 10000 = 5.5,向上取整为 6。
  2. FLOOR(salary / 10000)

    • 计算工资除以 10000 后的下限值,即向下取整。
    • 例如,60000 / 10000 = 6.0,向下取整为 6。
    • 55000 / 10000 = 5.5,向下取整为 5。
  3. ROUND(salary / 10000)

    • 计算工资除以 10000 后的四舍五入值。
    • 例如,60000 / 10000 = 6.0,四舍五入为 6。
    • 55000 / 10000 = 5.5,四舍五入为 6。
    • 85000 / 10000 = 8.5,四舍五入为 9。
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务