Navicat 博客

一些有用的 MySQL 数值函数 2022 年 2 月 18 日,由 Robert Gravelle 撰写

早在 2021 年 5 月,我们就探讨了 SQL Server 的重要的 SQL Server 函数。现在,是时候将注意力转向 MySQL,看看它为我们提供了什么数学和数值函数。为了了解它们在实践中是如何工作的,我们将在 Navicat 16 for MySQL 中运行的查询中使用它们。

比较 SQL Server 和 MySQL 函数

重要的 SQL Server 函数文章中,我们讲解了 Abs、Round、Ceiling 和 Floor 函数。事实证明,MySQL 不仅实现了这些讲解,而且名称完全相同。也许这并不奇怪,因为这些是数据库产品和编程语言的基本数值函数。

由于这些函数在两个 DBMS 中相同,因此重新讲述它们如何使用是没有意义的。相反,我们将继续探索 MySQL 中其他有用的数值函数。

AVG

你可能已经知道平均值或算术平均值是什么。你甚至可能知道它是通过将数据集中的所有值相加,然后将该结果除以该数据集中数据点数量来计算的。因此,如果我们有五个数字,例如 4、5、6、5、3,我们将按如下方式计算它们的平均值

(4 + 5 + 6 + 5 + 3) / 5 = 4.6

这个方法处理少量数值很简单,但是当你有 10,000 行时会发生什么?答案或当然是使用 MySQL 的内置 AVG 函数(顺便说一下,此函数在 SQL Server 中的命名是相同的)。我们需要做的就是为它提供一个数值表达式,它就会返回其平均值。以下是它的简单语法:

AVG(expression)

大多数时候,你会输入了一个你想要计算其平均值列名。例如,这里有一个查询,为我们提供了 Sakila 样本数据库中所有电影的平均片长:

avg (84K)

GROUP BY 按 category_id 对值进行细分,以便计算的平均值是基于每种电影类型,即“Action”、“戏Drama”等。

通过将 AVG 函数的结果传递给 ROUND,我们可以省略一些额外的小数位。

一个更复杂的例子

数值函数的有趣之处在于它们可以作为更大计算的一部分。举个例子,这里有一个查询,显示有哪些电影类别的电影更换成本和租金之间的平均差异大于 17 美元:

avg_replacement_cost (104K)

计算更换成本可以从平均更换成本中减去平均租金。这不需要临时变量,只需从一个函数中减去另一个函数的结果:

( AVG( replacement_cost ) - AVG( rental_rate ) ) AS replace_sub_rental

MIN或MAX

你有没有注意到很多数值函数都有三个字母的名字?我不知道为什么会这样,但这里有两个相关的函数用于计算数据集的最小值和最大值。同样,最典型的用法是将列名传递给函数。以下查询根据 rental_date 列选择最初和最后出租的电影详细信息。因此,它被传递给 MIN 和 MAX 函数:

min_max (73K)

混合聚合函数和标量数据可能会出现问题,因此会在子查询中获取 MIN 和 MAX rent_dates,以便与每个 Film 表行的 rental_dates 进行比较。

总结

本文使用了 Navicat 16 for MySQL 作为我们的数据库客户端介绍 MySQL 中的一些有用的数值函数,包括的 AVG、MIN 和 MAX。说到这里,如果你想试用 Navicat 16 for MySQL,你可以在 这里下载 14 天试用版。

Navicat 文章
频道条目
分享
文章归档