📜  SQLite 中的 ABS() 和 AVG()函数

📅  最后修改于: 2022-05-13 01:55:05.234000             🧑  作者: Mango

SQLite 中的 ABS() 和 AVG()函数

1. ABS()函数:
ABS(X) 是一个数学函数,用于获取数字的绝对值。

句法 -

ABS(X)

ABS(X)函数采用数字参数 X 并返回其大小。

SELECT ABS(-6);

输出 -

6

如果参数 X 是 blob 或字符串,则函数给出 0.0 作为返回值

SELECT ABS('gfg');

输出 -

0.0

如果参数 X 为 NULL,则函数返回 NULL。

SELECT ABS(NULL);

输出 -

NULL

2. AVG()函数:
AVG(X) 是一个聚合函数,用于计算一组行的平均值。

句法 -

AVG(X)

该函数产生一个浮点值,等于参数组 X 中所有非空值的平均值。

SELECT AVG(1,2,3,4,5,6,7)

输出 -

4.0

如果有 NULL 值传递给 AVG()函数,则在计算平均值时仅使用非 NULL 值。

SELECT AVG(10,20,30,NULL);

输出 -

20.0

参数 X 中存在的字符串和 blob 被评估为 0。

SELECT AVG(10,20,'word',30,);

输出 -

20.0

如果所有输入值均为 NULL,则该函数返回 NULL。

SELECT AVG(NULL,NULL,NULL);

输出 -

NULL

现在,我们将使用一个真实的数据库示例。首先,让我们创建一个名为student的表,其中包含nameage列并插入一些行!

--create a table
CREATE TABLE students(
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name VARCHAR(255),
  age INT);

--insert multiple rows
INSERT INTO students(name,age) 
VALUES
    ('Mark',20),
    ('Mary',19),
    ('John',17),
    ('Lydia',25);

然后我们将编写一个 SELECT 语句,使用 AVG()函数为我们提供所有学生的平均年龄

SELECT AVG(age) FROM students;

输出 -

20.25

接下来,我们将创建一个 SELECT 语句,该语句返回每个学生与 18 岁的新学生 Tony 之间的年龄差。

SELECT 
    name,
    age,
    ABS(age-18) AS age_difference_against_Tony 
FROM students;

输出 -

使用 ABS()函数输出 SELECT 语句