美文网首页Navicat 官方账号
一些MySQL的数值函数干货

一些MySQL的数值函数干货

作者: Navicat | 来源:发表于2022-04-20 13:11 被阅读0次

    早在 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 样本数据库中所有电影的平均片长:

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

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

    一个更复杂的例子

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

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

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

    MIN或MAX

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

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

    总结

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

    相关文章

      网友评论

        本文标题:一些MySQL的数值函数干货

        本文链接:https://www.haomeiwen.com/subject/uurvertx.html