SQL count where
在使用SQL时,您一定会遇到需要计算给定表中的行数的实例。例如,如果您正在处理没有编号ID的记录,则需要使用其他方法来确定总行数。
幸运的是,我们可以访问SQL count()函数,它在帮助我们确定表中的行数或给定查询的结果集方面起着至关重要的作用。
在本指南中,我们将深入研究如何使用count()函数对给定表或结果集中的行数进行计数的各种用法和示例。
要求:
在深入研究查询和示例之前,最好确保我们有需求。在这篇文章中,我们将使用以下方法:
a. MySQL数据库版本为8.0
b. MySQL Sakila样例数据库
您可以参考文档或查看我们的教程,了解如何在服务器上安装和设置Sakila示例数据库。
注意:你也可以使用任何你想要的数据集。本文讨论的方法将适用于所有方法。
SQL Count命令功能
如前所述,我们使用count()函数来确定表或查询结果集中的行数。我们可以将函数语法表示如下:
计数(表达)
这里,表达式引用了一个可选参数,该参数指定要计数的内容。我们可以提供以下参数:
a. * -告诉函数对表或结果集中的所有行进行计数。
b. column_name -统计指定列中非空值的个数。
c. DISTINCT column_name—统计指定列中不同的非空值的个数。
例1:计算所有行
count()函数最简单的用法是对给定表中的所有行进行计数。
以下面的查询为例,演示了如何使用这个函数来确定Sakila样本数据库中“film”表的行数:
SELECT COUNT(*) AS total_movies
从电影;
这将计数并返回指定表中记录的总数。使用示例输出如下:
total_films |
-----------+
1000 |
示例2:条件计数(WHERE)
该函数还允许我们指定给定的布尔条件。这将返回与该特定条件匹配的行的总数。
以Sakila数据库中的“film”表为例。假设我们希望确定评级为“R”的电影的数量。
我们可以运行如下查询:
SELECT COUNT(*) AS total_rated_r_films
从电影
WHERE rating = 'R';
在本例中,我们使用WHERE子句添加一个条件。这应该只过滤匹配的记录,并将结果集传递给count()函数。
使用示例输出如下:
total_rated_r_films |
-------------------+
195 |
结论
在本教程中,我们学习了如何使用SQL中的count()函数和WHERE子句来进行条件过滤。