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)测试语句:
结果:
(c)测试语句:
结果:
结论:对count中为*或者列中不含空值的字段,结果就是所有的行数,如果某一列含空值,结果就是去除了空行的部分的行数。
=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语句的主要内容,如果未能解决你的问题,请参考以下文章