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函数用法和字符串拼接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)