MySQL COUNT函数示例

MySQL COUNT函数示例

如果你的职业与数据库有关,那么你每天都要面对各种各样的数据处理例行任务。这是否意味着你必须全部手动完成?当然不是。这会消耗你所有的时间,并增加很多风险。有很多方便的IDE,比如dbForge Studio for MySQL 功能丰富,让您可以自动完成任务。无论您使用哪种工具,实际方法都是存在的,并且它们是数据库专业人员所熟知的。

本文将探讨MySQL中最常用的函数之一——COUNT()函数。

内容

  • 什么是MySQL COUNT函数?
  • MySQL COUNT语法示例 )
  • 如何使用COUNT函数
  • 使用COUNT函数的示例
  • COUNT
  • COUNT(表达式)
  • COUNT(DISTINCT表达式)
  • 在WHERE子句使用COUNT
  • COUNT与GROUP BY一起使用
  • COUNT与HAVING的用法
  • 结论

什么是MySQL COUNT函数?

让我们从一个简单的问题开始。“COUNT”函数的作用是什么?我们为什么需要它?答案很简单:它计算记录数。您可能需要统计MySQL数据库中的员工数量,检查不同状态的订单数量,关联收入和支出等。在所有这些情况下(以及无数其他情况下),您都可以访问数据库,提出请求,并获得结果,以便进一步分析。

理解COUNT函数并在实践中使用它对MySQL专业人员来说至关重要。尽管许多现代工具允许我们执行计数操作,即使不需要手动编码,但我们仍然需要知道命令的本质是什么,方法是如何工作的,以及如何正确使用它。

MySQL COUNT语法示例

MySQL COUNT函数是一个内置聚合函数,用于统计查询结果中的值并返回总数。它可以统计所有行或其中的一些行,以识别符合特定条件的记录。从早期版本(如4.0版)开始,MySQL中就可以使用此功能。

在查询中使用此函数时,它如下所示:

COUNT(表达式)

作为SELECT语句的一部分,语法大致如下:

SELECT COUNT(表达式)
FROM table 
WHERE条件;
  • 表达式是指定要计数的值的参数。它可以是字段或字符串类型的值。
  • 是用作获取记录的源的表。你至少需要一张表。
  • WHERE是从表中选择记录的可选条件。

如何使用COUNT函数

在本文中,我们将演示如何在dbForge Studio for MySQL 中使用COUNT函数的不同表现形式。 dbForge是一个成熟的MySQL GUI,可以帮助创建和执行查询、开发和调试存储例程、自动化数据库对象管理。其功能丰富、使用直观。 要开始dbForge Studio之旅,您需要创建一个连接:

  1. 单击Database菜单中的New Connection

图片

  1. 填写相应的数据库连接属性,然后单击Test Connection

图片

  1. 如果一切设置正确,您将看到Successfully connected消息。单击Connect
  2. 连接完成后,单击New SQL

图片

  1. 将打开一个空白的SQL窗口。在这里,您可以输入并执行任何查询。这正是我们在本文中将要做的。

图片

使用COUNT函数的示例

COUNT

实际上,我们使用三种类型的此函数:

  • COUNT(*)
  • COUNT(expression)
  • COUNT(distinct)

COUNT(*) 是一个变量,用于统计“SELECT”语句返回的所有结果,包括NULL和重复项。

sakila数据库为例,其中包含film表。我们将查找2012年发行了多少部新电影。命令如下:

SELECT COUNT(*) 
FROM film
WHERE release_year = 2012;

要执行查询,请将其粘贴到SQL窗口中,然后单击
img ,或按F5。

图片

COUNT(表达式)

COUNT(expression)是我们用来统计记录的最常用方法。表达式与上面的WHERE子句起着相同的作用–它定义了返回数据的条件。

但是,与COUNT(*)不同,COUNT(表达式)根本不计算NULL值–这样的行被忽略。

让我们看另一个例子。假设我们的sakila数据库包含一个名为film的表,其中包含以下数据:

film_idtitlerelease_yeardescription
1The Green Mile1999A magical realism drama film written and directed by Frank Darabont and based on Stephen King’s 1996 novel of the same name.
2Pulp Fiction1994A black comedy crime film written and directed by Quentin Tarantino, who conceived it with Roger Avary.
3Forrest Gump1994A comedy-drama film directed by Robert Zemeckis and written by Eric Roth.
4Spirited Away2001

假设我们要使用“SELECT COUNT”选项统计有描述的电影数量:

SELECT COUNT(description) 
FROM film;

图片

该命令只返回了3个实体,因为第4个实体在description列中没有任何值。该值为NULL,MySQL计数列值仅在这些值不是NULL时有效。

COUNT(DISTINCT 表达式)

COUNT(DISTINCT表达式)是返回所有唯一非NULL值的方法。语法与以下模式匹配:

SELECT COUNT(DISTINCT column)
FROM table;

现在,我们要找出我们有多少属于恐怖类型的独特标题。在这里,我们将应用MySQL COUNT(distinct)

SELECT COUNT(DISTINCT 'Horror') 
FROM film;

图片

现在,让我们研究一下COUNT()在不同子句中的用法。

在WHERE子句示例中使用COUNT

在前面的示例中,我们使用了WHERE。我们可以使用此子句设置要获取记录的条件。当我们想知道所有记录(包括那些带有NULL的记录)的数量时,使用此子句的常见场景是使用SELECT COUNT(*)
现在,我们要看看有多少电影被独家删除了场景。因此,我们将应用“SELECT COUNT”组合:

SELECT COUNT(*)
FROM film
WHERE special_features = 'Deleted Scenes';

图片

此命令将统计包含已删除场景的所有电影。此编号将包括仅具有此类特殊功能的记录、包含多个特殊功能的以及具有NULL的记录。

我们可以对表达式设置别名,使结果更适合阅读:

SELECT COUNT(*) AS "Trailers"
FROM film 
WHERE release_year < 2020;

图片

执行此查询时,系统将显示Trailers作为字段名,包含2020年之前发布的电影数量。

注意:COUNT(*) 函数添加外部子句可能会为性能带来额外的负载,因此请考虑这种情况。

将COUNT与GROUP BY一起使用的示例

COUNT()函数可以与GROUP BY结合使用。目的很简单——提高结果的可读性。这个子句让我们对返回的结果数据进行分类到不同的组。
假设我们需要计算某一年发行的电影数量。我们使用以下包含MySQL COUNT GROUP BY组合的代码:

SELECT release_year, COUNT(*) AS "Number"
FROM film
GROUP BY release_year;

图片

举例说明COUNT与HAVING的用法

HAVING子句也可以与COUNT函数一起使用。它与“GROUP BY”语句结合使用–这是一个强制条件,因为“HAVING”不能单独使用。

当脚本包含COUNTGROUP BYHAVING时,系统从分组行开始,然后将
COUNT()HAVING一起应用。

例如,我们想计算包含100多部电影的收视率。这就是我们将COUNT()GROUP BYHAVING子句一起使用的地方:

SELECT rating, COUNT(*)  
FROM film  
GROUP BY rating 
HAVING COUNT(*) >=100;

图片

结论

无论你是一个真正的代码爱好者,还是只需要在工作中的一些实用例程中使用MySQL的基础知识,COUNT函数都是你不能忽视的。这看起来很简单——这都是关于MySQL计算行的基本任务:所有行或单独的行。然而,它是必不可少的,在许多情况下也是不可或缺的。

“COUNT”函数还允许我们过滤数据。我们可以用各种条款来定义我们的需求WHEREGROUP BYHAVING是最常见的。通过应用这些子句,我们可以有效地指定目标数据,对结果进行分组,并对数据进行排序以从数字中提取所需的值。
这个函数在语法和使用上都很简单(尽管包含它的代码可能非常复杂),而且它在工作中很方便。适当地应用它,你就会完成工作!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值