MySQL数据库COUNT和WHERE联合使用

MySQL数据库COUNT和WHERE联合使用,第1张

这几天学习《MySQL必知必会》发现有一句SQL语句有点绕,所以在这里记录以下,以免日后忘记。

现在由这样两张表,分别是orders表:

customers表:

然后执行以下SQL语句:

得到以下结果:

刚开始看到这个结果很疑惑,想的是子查询中的 COUNT() 不应该是输出一个值吗,为什么这里输出了一列值。其实这个原因很简单,这个子查询的条件是 orderscust_id = customerscust_id ,相当于将orders表中的cust_id与customers表中的 cust_id 比较,对于customers表中的每个 cust_id ,orders表都要比较一次,一共比较5次,所以有5条记录。

这样说可能还是比较绕,现在从简单的例子看起,我们最先开始学习WHERE语句的时候是这样的:

我们假设现在有一张名为user的表,根据 user_id=111 这个条件去检索,相当于把表中user_id这一列中的每一行数据都与111进行比较,如果相等,那就是要检索出的行。

回到问题,根据子查询语句 SELECT COUNT() FROM orders WHERE orderscust_id = customerscust_id 。我们可以拆解的来分析, 相当于customers表中的每个 cust_id 都是上述简单例子中的111,然后用orders表中的 cust_id 这一列去匹配,一共匹配5次,每一次过滤的结果再通过聚合函数 COUNT() 记录行数, 就得到一列别名为 orders 的数据为 2,0,1,1,1 ,最后在最外部的查询中,通过 ORDER BY 排序得到结果 2,1,0,1,1 。

其实书中已经为这个问题给出了解释,就在这个例子后的分析里面。

就是用来计算数字的个数,比如我们要求红框中数字的个数,可以直接用COUNT函数=COUNT(B8:B11),得到结果3,因为有3个数字,第一个单元是文本,所以不计,如下图所示:

1、COUNT函数只能对数字数据进行统计,对于空单元格、逻辑值、文本数据或者错误值将被忽略。简单来说,这些类型的值,不被计入个数,并且,错误值不影响公式,不会致使公式出错。

2、日期、时间背后是数字的另一种展现形式,也会被COUNT函数计数。日期和时间,其背后都是数字,他们只不过是穿了马甲的数字,也会被COUNT函数识别为数字计数。

Excel的最小是日期是1900/1/1,大家可以在表格中写出这个日期,然后将单元格格式调为常规,你会发现,它其实是数字1。然后随着日期增长,数字逐渐变大。

3、逻辑值放在数组中或单元格中时,不被计数;单独作为一个参数时将被计算。

COUNT() 函数返回匹配指定条件的行数。

SQL COUNT(column_name) 语法

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name;

SQL COUNT() 语法

COUNT() 函数返回表中的记录数:

SELECT COUNT() FROM table_name;

SQL COUNT(DISTINCT column_name) 语法

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name;

注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。

SQL COUNT(column_name) 实例

下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:

实例

SELECT COUNT(count) AS nums FROM access_log

WHERE site_id=3;

SQL COUNT() 实例

下面的 SQL 语句计算 "access_log" 表中总记录数:

实例

SELECT COUNT() AS nums FROM access_log;

执行以上 SQL 输出结果如下:

SQL COUNT(DISTINCT column_name) 实例

下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:

实例

SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;

执行以上 SQL 输出结果如下:

COUNT 函数计算包含数字的单元格个数以及参数列表中数字的个数。

语法:

COUNT(value1, [value2], );

COUNT 函数语法具有下列参数:

value1 必需。 要计算其中数字的个数的第一项、单元格引用或区域。

value2, 可选。 要计算其中数字的个数的其他项、单元格引用或区域。

扩展资料

最多可包含 255 个。

注意:这些参数可以包含或引用各种类型的数据,但只有数字类型的`数据才被计算在内。

备注:

如果参数为数字、日期或者代表数字的文本(例如,用引号引起的数字,如 '1'),则将被计算在内。

逻辑值和直接键入到参数列表中代表数字的文本被计算在内。

如果参数为错误值或不能转换为数字的文本,则不会被计算在内。

如果参数是一个数组或引用,则只计算其中的数字。 数组或引用中的空白单元格、逻辑值、文本或错误值将不计算在内。

函数 :=COUNT(A4:C8);

解答:A4:C8是查找的区域;

查找有多少数字单元格的个数;

数字、日期、或以文本代表的数字计算。

以上就是关于MySQL数据库COUNT和WHERE联合使用全部的内容,包括:MySQL数据库COUNT和WHERE联合使用、count统计个数是什么、sql中count函数的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9519217.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存