PostgreSQL 教程: div 函数

七月 6, 2024

摘要:在本教程中,您将学习如何使用 PostgreSQL DIV()函数,执行整数除法。

目录

PostgreSQL DIV 函数简介

DIV()函数是执行整数除法的有用工具。与返回浮点数结果的除法运算符(/)不同,DIV()函数返回一个整数商。

下面是DIV()函数的基本语法:

DIV(dividend, divisor)

在此语法中:

  • dividend是要被除的数字。
  • divisor是要除以的数字。

DIV()函数返回除法的整数商。

PostgreSQL DIV 函数示例

让我们来探索一些使用DIV()函数的示例。

1) 基本 DIV 函数示例

下面使用DIV()函数,返回 10 除以 3 的结果:

SELECT DIV(10,3) as result;

输出:

 result
--------
      3
(1 row)

结果是 3。

与常规除法不同,DIV()函数会截断结果的任何小数部分,并且只返回整数部分。

2) 将数据分组到桶中

您可以使用DIV()函数将数值数据分组到桶中。例如,您可以将样例数据库film表中的电影,分组到 30 分钟的桶中:

SELECT
  title, 
  DIV(length, 30) * 30 as bin 
FROM
  film 
GROUP BY 
  bin, 
  title 
ORDER BY  
  title;

输出:

            title            | bin
-----------------------------+-----
 Academy Dinosaur            |  60
 Ace Goldfinger              |  30
 Adaptation Holes            |  30
 Affair Prejudice            |  90
 African Egg                 | 120
 Agent Truman                | 150
 Airplane Sierra             |  60
...

在此示例中,我们将电影的长度分组到了 30 分钟的桶中。

3) 使用 PostgreSQL DIV 函数计算年龄

首先,创建一个新表,名为employees,并在其中插入一些数据

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    birthdate DATE NOT NULL
);

INSERT INTO employees (name, birthdate) 
VALUES
    ('John Doe', '1990-05-15'),
    ('Jane Smith', '1985-09-20'),
    ('Michael Johnson', '1982-03-10'),
    ('Emily Brown', '1995-11-28')
RETURNING *;

输出:

 id |      name       | birthdate
----+-----------------+------------
  1 | John Doe        | 1990-05-15
  2 | Jane Smith      | 1985-09-20
  3 | Michael Johnson | 1982-03-10
  4 | Emily Brown     | 1995-11-28
(4 rows)

第二步,计算每个员工的年龄:

SELECT name, DIV(EXTRACT(YEAR FROM AGE(current_date, birthdate)), 1) AS age
FROM employees;

输出:

      name       | age
-----------------+-----
 John Doe        |  33
 Jane Smith      |  38
 Michael Johnson |  41
 Emily Brown     |  28
(4 rows)

它是如何工作的。

  • 使用 AGE() 函数计算年龄。
  • 使用 EXTRACT() 函数从年龄中提取年份。
  • 使用DIV()函数返回年龄的整数部分。

总结

使用 PostgreSQL DIV()函数执行整数除法。

了解更多

PostgreSQL 教程:数学函数

PostgreSQL 文档:数学函数和操作符