SQL的COUNT语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的COUNT语句相关的知识,希望对你有一定的参考价值。

这句SQL语句有错吗?为什么加上COUNT(id) as fbbc就会出错啊?
=SQLEXEC(lnHandle,"select id,rqi,qbc,fbc,COUNT(id) as fbbc,qlc+flc as ylc,qrs+frs as rs,qys+fys as ys from bcszl where (substring(rqi,6,2) = ?mo) and (substring(rqi,1,4) =?ye ) and (LTRIM(yxxl)=?yxx) order by rqi asc ","bcszl_temp" )
找到原因了。COUNT是横向统计,横向统计qbc和fbc的个数。请问怎么进行横向COUNT?
这句语句是没有问题的。但只适合竖向统计个数。我现在是想每行都统计出个数。

SQL中的count()语句是计算行数的语句,但根据括号内的内容不同,略有区别。

1、创建测试表、插入数据:

create table test
(id int,
name varchar(10),
name1 varchar(10));


insert into test values (1,\'a\',\'b\')
insert into test values (2,\'c\',\'d\')
insert into test values (3,\'e\',null)

2、做不同的测试(主要是针对字段中含有null的情况)。

(a)测试语句

select count(*) from test;--不区分字段,针对全表

结果:

(b)测试语句:

select count(id) from test;--针对一列不含空值的字段

结果:

(c)测试语句:

select count(name1) from test;

结果:

结论:对count中为*或者列中不含空值的字段,结果就是所有的行数,如果某一列含空值,结果就是去除了空行的部分的行数。

参考技术A 因为你的查询语句中加了count聚合函数,是要在where条件后加上分组语句的:

=SQLEXEC(lnHandle,"select id,rqi,qbc,fbc,COUNT(id) as fbbc,qlc+flc as ylc,qrs+frs as rs,qys+fys as ys from bcszl where (substring(rqi,6,2) = ?mo) and (substring(rqi,1,4) =?ye ) and (LTRIM(yxxl)=?yxx) group by id,rqi,qbc,fbc,qlc+flc,qrs+frs,qys+fys order by rqi asc ","bcszl_temp" )

以上,希望对你有所帮助!本回答被提问者采纳
参考技术B count() 函数 返回的是指定条件的行数,所以次select语句count返回的是你查询到的总行数 看上去你这语句没什么错误 你可以把couont里边的id 换成 * 试一试! 参考技术C =SQLEXEC(lnHandle,"select id,rqi,qbc,fbc,COUNT(id) over() as fbbc,qlc+flc as ylc,qrs+frs as rs,qys+fys as ys from bcszl where (substring(rqi,6,2) = ?mo) and (substring(rqi,1,4) =?ye ) and (LTRIM(yxxl)=?yxx) order by rqi asc ","bcszl_temp" ) 参考技术D 你仔细看看,你句子的语法都是错的,前面你要显示一个数据 ,然而你的COUNT()函数是要统计,这不是矛盾吗?

sql语句中COUNT(1)是啥意思?

参考技术A 统计行数的意思和count(*)一样本回答被提问者采纳

以上是关于SQL的COUNT语句的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中countcount(*)count(字段)用法的区别

SQL语句中 聚合函数count()忽略空值么?

SQL语句中count和count的区别

SQL利用循环语句插入数据

sql语句中count的意思

sql 聚合语句,count的用法