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之旅,您需要创建一个连接:
- 单击Database菜单中的New Connection。
- 填写相应的数据库连接属性,然后单击Test Connection。
- 如果一切设置正确,您将看到Successfully connected消息。单击Connect
- 连接完成后,单击New SQL。
- 将打开一个空白的SQL窗口。在这里,您可以输入并执行任何查询。这正是我们在本文中将要做的。
使用COUNT函数的示例
COUNT
实际上,我们使用三种类型的此函数:
COUNT(*)
COUNT(expression)
COUNT(distinct)
COUNT(*)
是一个变量,用于统计“SELECT”语句返回的所有结果,包括NULL和重复项。
以sakila数据库为例,其中包含film表。我们将查找2012年发行了多少部新电影。命令如下:
SELECT COUNT(*)
FROM film
WHERE release_year = 2012;
要执行查询,请将其粘贴到SQL窗口中,然后单击
,或按F5。
COUNT(表达式)
COUNT(expression)
是我们用来统计记录的最常用方法。表达式与上面的WHERE
子句起着相同的作用–它定义了返回数据的条件。
但是,与COUNT(*)不同,COUNT(表达式)根本不计算NULL值–这样的行被忽略。
让我们看另一个例子。假设我们的sakila数据库包含一个名为film的表,其中包含以下数据:
film_id | title | release_year | description |
---|---|---|---|
1 | The Green Mile | 1999 | A magical realism drama film written and directed by Frank Darabont and based on Stephen King’s 1996 novel of the same name. |
2 | Pulp Fiction | 1994 | A black comedy crime film written and directed by Quentin Tarantino, who conceived it with Roger Avary. |
3 | Forrest Gump | 1994 | A comedy-drama film directed by Robert Zemeckis and written by Eric Roth. |
4 | Spirited Away | 2001 |
假设我们要使用“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”不能单独使用。
当脚本包含COUNT
、GROUP BY
和HAVING
时,系统从分组行开始,然后将
COUNT()
与HAVING
一起应用。
例如,我们想计算包含100多部电影的收视率。这就是我们将COUNT()
与GROUP BY
和HAVING
子句一起使用的地方:
SELECT rating, COUNT(*)
FROM film
GROUP BY rating
HAVING COUNT(*) >=100;
结论
无论你是一个真正的代码爱好者,还是只需要在工作中的一些实用例程中使用MySQL的基础知识,COUNT
函数都是你不能忽视的。这看起来很简单——这都是关于MySQL计算行的基本任务:所有行或单独的行。然而,它是必不可少的,在许多情况下也是不可或缺的。
“COUNT”函数还允许我们过滤数据。我们可以用各种条款来定义我们的需求WHERE
、GROUP BY
和HAVING
是最常见的。通过应用这些子句,我们可以有效地指定目标数据,对结果进行分组,并对数据进行排序以从数字中提取所需的值。
这个函数在语法和使用上都很简单(尽管包含它的代码可能非常复杂),而且它在工作中很方便。适当地应用它,你就会完成工作!