NSI SQL包含几个聚合函数,使您可以对一组值执行计算以将其结果作为单个值返回。这些包括Count(),Min(),Max(),Sum()和AVG()等。默认情况下,聚合函数适用于所有行,但是您可以通过将WHERE子句应用于SELECT语句来缩小字段的范围。
Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
Navicat Premium最新试用版
ANSI SQL包含几个聚合函数,使您可以对一组值执行计算以将其结果作为单个值返回。这些包括Count(),Min(),Max(),Sum()和AVG()等。默认情况下,聚合函数适用于所有行,但是您可以通过将WHERE子句应用于SELECT语句来缩小字段的范围。此外,您可以使用其他一些技术有条件地选择某些行,我们将在今天使用Navicat Premium探索这些技术。这些包括使用CASE语句以及GROUP BY子句。我们将这些技术应用于AVG()函数,但它们将与所有聚合函数同样有效。
使用AVG()函数
AVG()检索给定表达式的平均值。如果该函数找不到匹配的行,则返回NULL。我们将对Sakila示例数据库运行查询。它最初是为MySQL开发的,但此后已移植到大多数流行的DBMS。Navicat Premium是理想的数据库客户端,因为它支持从MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL到SQLite的所有内容。此外,它还与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure,Oracle Cloud,Google Cloud和MongoDB Atlas等云数据库兼容。
电影表存储有关虚构的Sakila视频租赁商店的各个电影的信息。列包括标题,描述,运行时间,租金,等级和其他。

我们可以使用AVG()函数来确定所有电影的平均租赁成本,如下所示:

使用CASE语句
AVG()函数接受一个表达式。因此,它可以是列名,但可以是任何有效表达式。因此,我们可以通过将CASE语句作为参数传递给AVG()函数来有条件地应用AVG()函数。我们可以使用CASE语句确定只有PG评级的电影的平均Rental_rate,如下所示:

上面的查询显示了电影的总数,没有PG评级的电影,以及所有电影以及具有PG评级的电影的平均租金。使用CONCAT()和FORMAT()函数将rental_rate显示为货币。
使用GROUP BY子句
将AVG()仅应用于某些行的另一种方法是使用GROUP BY。它根据所选列汇总结果。因此,按评分分组结果将列出每个评分的平均Rental_rate:


结论
在今天的博客中,我们使用CASE语句和GROUP BY子句有条件地基于平均值列出电影记录。
查询在Navicat Premium 15中执行。它增加了100多个增强功能,并包括几个新功能,可为您提供比以往更多的构建,管理和维护数据库的方式!
相关内容推荐:
Navicat 使用教程>>>
想要购买Navicat Premium正版授权,或了解更多产品信息请点击【咨询在线客服】
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!