在SQL中,你可以做一个数据库查询,并使用COUNT 函数来获得表中某个特定组的行数。
在这篇文章中,我将通过几个代码实例向你展示如何使用COUNT 函数。
什么是SQL中的COUNT函数?
这个SQL函数将返回给定组的行数的计数。
下面是基本的语法:
SELECT COUNT(column_name) FROM table_name;
SQL中的SELECT 语句告诉计算机要从表中获取数据。
COUNT(column_name) 将不包括 的值作为计数的一部分。NULL
SQL中的NULL 值是指在表中不存在的值。
有时你可以在括号内使用* ,用于COUNT 函数:
SELECT COUNT(*) FROM table_name;
COUNT(*) 函数将返回该组项目的总数,包括NULL 值。
SQL中的FROM 子句指定了我们要列出哪个表。
你也可以在COUNT 函数中使用ALL 关键字:
SELECT COUNT(ALL column_name) FROM table_name;
ALL 关键字将计算表中的所有值,包括重复的。你可以省略这个关键字,因为无论你是否写了这个关键字,COUNT 函数都会使用ALL 这个关键字作为默认。
有时你会看到DISTINCT 关键字与COUNT 函数一起使用:
SELECT COUNT(DISTINCT column_name) FROM table_name;
DISTINCT 关键字将只计算NOT NULL 的唯一值。计算机将忽略任何重复的值。
如何在SQL中使用COUNT函数
在这个例子中,我们有一个年轻营员的表,列是id,name,age 和counselor

如果我们想选择表中的所有行,那么我们可以使用以下语法:
SELECT COUNT(*) FROM campers;

正如你所看到的,查询返回的数字是12,代表了我们的campers 表中的总行数。
使用WHERE 子句
我们可以使用WHERE 子句来指定某个营地辅导员的名字的行数。
在这个例子中,我们想通过Ashley这个名字来计算营地辅导员的行数。
在WHERE 子句中,我们需要指定counselor ,其值为"Ashley" :
WHERE counselor="Ashley";
这就是完整的代码:
SELECT COUNT(*) FROM campers WHERE counselor="Ashley";
这就是结果将返回的内容:

如果我们看一下刚才的表格,我们可以看到"Ashley" 只出现了4次:

我们可以修改我们的结果来计算有多少行是11岁的露营者。
在WHERE 子句中,我们需要指定age ,其值为11 :
WHERE age=11;
这就是完整的代码:
SELECT COUNT(*) FROM campers WHERE age=11;
这就是结果将返回的内容:

如果我们看一下刚才的表格,我们可以看到只有三个11岁的露营者。
如何使用GROUP BY 子句
我们可以使用GROUP BY 子句和COUNT 函数来查看表中11、12和13岁的营员人数。
我们首先要选择age 列并使用COUNT 函数:
SELECT age, COUNT(*)
然后我们要指定campers 表,并通过age 对结果进行分组:
FROM campers GROUP BY age;
这就是代码的全部内容:
SELECT age, COUNT(*) FROM campers GROUP BY age;
这就是结果的样子:

如何使用ORDER BY 子句
我们可以为年龄列表修改我们的例子,并使用ORDER BY 子句将结果从最小到最大列出。
这就是ORDER BY 子句的代码:
ORDER BY COUNT(*);
我们在SELECT 语句的末尾添加该子句,像这样:
SELECT age, COUNT(*) FROM campers GROUP BY age ORDER BY COUNT(*);
这就是修改后的例子的样子:

如果我们希望计数结果从大到小排序,那么我们可以使用DESC 关键字。
这是使用DESC 关键字的ORDER BY 子句的代码:
ORDER BY COUNT(*) DESC;
这是完整的代码:
SELECT age, COUNT(*) FROM campers GROUP BY age ORDER BY COUNT(*) DESC;
这就是新结果的样子:

如何使用HAVING 子句
我们可以使用HAVING 子句来为COUNT 函数指定一个条件。
我们可以修改代码,只显示计数小于5的年龄段的结果。
这就是HAVING 子句的代码的样子:
HAVING COUNT(*)<5;
这就是完整的代码的样子:
SELECT age, COUNT(*) FROM campers GROUP BY age HAVING COUNT(*)<5;
这是修改后的结果的样子:

我们可以看到,由于计数大于5,12岁的人被从这个结果中删除。
总结
在SQL中,你可以做一个数据库查询,并使用COUNT 函数来获取表中某个特定组的行数。
下面是基本的语法:
SELECT COUNT(column_name) FROM table_name;
COUNT(column_name) 将不包括 的值作为计数的一部分。NULL
SQL中的NULL 值指的是表中不存在的值。
有时你可以在括号内使用* ,用于COUNT 函数。
SELECT COUNT(*) FROM table_name;
COUNT(*) 函数将返回该组中包括NULL 值的项目总数。
我希望你喜欢这篇文章,祝你的SQL之旅好运。