如何统计SQL语句查询出来的条数

如何统计SQL语句查询出来的条数,第1张

i=SELECT  count(1)   FROM TABLE

语句返回值即为查询出来的条数

示例如图所示:

扩展:

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

语法

(1) SQL COUNT(column_name) 语法

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

SELECT COUNT(column_name) FROM table_nameSQL

(2) COUNT() 语法

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

SELECT COUNT() FROM table_nameSQL

(3) COUNT(DISTINCT column_name) 语法

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

SELECT COUNT(DISTINCT column_name) FROM table_name

参考资料: 网页链接

这几天学习《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 。

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

select '当前任务总数:'+count() +',其中'+sum(case when 任务状态='未处理' then 1 else 0 end) +'未处理,' + sum(case when 任务状态='处理中' then 1 else 0 end) +'处理中'

from 表名

以上就是关于如何统计SQL语句查询出来的条数全部的内容,包括:如何统计SQL语句查询出来的条数、MySQL数据库COUNT和WHERE联合使用、SQL语句的Count函数用法和字符串拼接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10086006.html

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

发表评论

登录后才能评论

评论列表(0条)

保存