数据库16:COUNT() 函数的使用(头歌云课)


(1)任务描述

本关任务:使用函数 COUNT(),计算数据表中指定字段(列)的内容(行)个数。

(2)相关知识

为了完成本关任务,你需要掌握:1. COUNT() 函数的含义,2. COUNT() 函数的用法。

(3)返回内容(行)的个数

COUNT() 函数的作用就像它的函数名一样能让大家一目了然,没错,它就是用来计数的。

COUNT() 函数有两种使用方法:

  1. 使用 COUNT(*) 能对整张表的内容(行)进行计数,不管内容(行)是有值还是空值。
  2. 使用 COUNT(字段) 能对某一字段的内容(行)进行计数,但是会忽略 NULL 值。

语法规则为:

1.
SELECT COUNT(*)
FROM 表名
2.
SELECT COUNT(字段名)
FROM 表名

举个例子 我们想从表 Customers 中,检索到整张表一共有多少内容(行)。 表 Customers 的内容如下图所示:

输入:

SELECT COUNT(*) AS nums
FROM Customers

输出:

检索过程为:

在这个例子里, COUNT(*) 用来对整张表的内容(行)进行计数,忽略了内容是否为空值。计数的结果最后返回到了 nums 。

再举个例子 我们想从表 Customers 中,检索到究竟有多少人拥有邮箱地址。表 Customers 的内容与上例一致。

输入:

SELECT COUNT(cust_email) AS nums
FROM Customers

输出:

检索过程为:

SELECT 语句使用了 COUNT(cust_email) 来对 cust_email 字段下的非空值进行计数。在这个例子中,我们看到有五分之四的人拥有自己的邮箱。

Tips: 当我们指定对某一个字段(列)进行计数时,COUNT() 就会忽略 NULL 对非空值进行计数。但是如果没有指定字段(列),使用 COUNT(*) 对整体内容(行)进行计数,计数就会包含空值行。这点要时刻保持清醒!

(4)编程要求

我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 Begin-End 区间的代码,返回表 Products 中商品价格( prod_price )大于 10 的商品个数(只需返回数量即可)。

其中表 Products 的内容不公开,但是已知每个产品的价格非空。期待你的发挥!

测试说明

测试过程:

  • 本关涉及到的测试文件是 step2_test.sh ,平台将运行用户补全的 step2.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

如果操作正确,你将得到如下的结果:


开始你的任务吧,祝你成功!

注意此题:不需要AS nums!!!!因为AS 是用于命名的,本次实训答案中并没有要求命名为nums。

实验代码

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MySQL数据库中,有时我们不一定需要使用count函数来统计数量,可以通过其他方法来实现。 1. 使用LIMIT子句:如果我们只需要获取某个表中的前几条记录,而不是全部记录,可以使用LIMIT子句来限制返回的结果集数量。例如,使用SELECT语句加上LIMIT 5将返回表中的前5条记录。 2. 使用FOUND_ROWS()函数:当我们使用LIMIT子句来限制结果返回数量时,如果想要获取整个结果集的数量,可以结合使用SQL_CALC_FOUND_ROWS和FOUND_ROWS()函数。首先,使用SELECT SQL_CALC_FOUND_ROWS语句获取结果集,然后使用SELECT FOUND_ROWS()来获取整个结果集的数量。 3. 使用SUM函数:当我们需要对某一列的值进行求和操作时,可以使用SUM函数。如果某一列的值都是1,那么对该列使用SUM函数就可以得到该列的数量。 4. 使用子查询:可以通过编写子查询语句来获取某个表或视图的行数。例如,使用SELECT COUNT(*) FROM table_name将返回该表的行数。 5. 使用EXISTS子查询:使用EXISTS子查询可以判断某个条件是否存在。例如,SELECT * FROM table_name WHERE EXISTS (SELECT * FROM another_table WHERE condition)将返回满足条件的行数。 总之,MySQL数据库在不使用count函数统计数量的情况下,可以通过LIMIT子句、FOUND_ROWS()函数、SUM函数、子查询以及EXISTS子查询等方法来实现。根据具体需求,选择适当的方法可以提高查询效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值