在对有null值的字段进行count时,发现count(1)与count(字段)得到的记录不一样。
最后在ITPUB上朋友们的帮助下,解决了。
原帖地址:
http://www.itpub.net/thread-1383832-1-2.html
结论:1.count(1)与count(*)得到的结果一致,包含null值。
2.count(字段)不计算null值
3.count(null)结果恒为0
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> desc t_product;
Name Type Nullable Default Comments
------------ ------------ -------- ------- --------
PRODUCT_ID NUMBER(6) Y
PRODUCT_NAME VARCHAR2(50) Y
LIST_PRICE NUMBER(8,2) Y
SQL> SELECT * FROM t_product WHERE list_price IS NULL;
PRODUCT_ID PRODUCT_NAME LIST_PRICE
---------- --------------- ----------
3355 HD 8GB /SI
1770 8MB Cache /NM
SQL> select count(1), count(*), count(list_price),count(null)
2 from t_product
3 where list_price is null;
COUNT(1) COUNT(*) COUNT(LIST_PRICE) COUNT(NULL)
---------- ---------- ----------------- -----------
2 2 0 0
<br />在对有null值的字段进行count时,发现count(1)与count(字段)得到的记录不一样。<br />最后在ITPUB上朋友们的帮助下,解决了。<br />原帖地址:http://www.itpub.net/thread-1383832-1-2.html<br /> <br />结论:1.count(1)与count(*)得到的结果一致,包含null值。<br /> 2.count(字段)不计算null值<br /> 3.count(null)结果恒为0<br />
count
()聚合计算
count
()是聚合函数,对于返回的结果集,一行行地判断,累计
值
加1,最后返回累计
值
,
count
(*)、
count
(主键ID)和
count
(1)表示返回满足条件的结果集的总行数。
count
()聚合函数
统计
非
NULL
与
NULL
值
的区别:
1、
count
(
字段
)不
统计
NULL
记录,即表示满足条件的数据行里参数
字段
不为
NULL
的行
2、
count
(1)和co...
my
sql
count
详解
count
函数是用来
统计
表中或数组中记录的一个函数,下面我来介绍在my
sql
中
count
函数用法。
count
(*) 它返回检索行的数目, 不论其是否包含
NULL
值
。
SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时,
COUNT
(*)被优化到最快的返回速度。
my
sql
> SELECT
COUNT
(*) FROM student;
COUNT
(DISTINCT
字段
)这个优化仅适用于 MyISAM表, 原因是这些表类型会储存一个函数返回记录的精确数量,而且非常容易访问。
对于事务型的存储引擎(InnoDB, BDB), 存
使用
COUNT
函数处理
NULL
值
大部分集合函数在进行计算时都去除
NULL
值
,但
COUNT
函数是一个例外。一般情况下当对一个包含
NULL
值
的列使用
COUNT
函数时,这个列中的
NULL
值
将会被去除掉。但是如果
COUNT
函数使用一个星号,它就会计算所有的行,而不管其中是否包含
NULL
值
。
如果你想使用
COUNT
函数计算包含
NULL
值
的列的所有行,那么需要使用IS
NULL
函数(或使用NVL函数)。
1.
count
(1)与
count
(*)得到的结果一致,包含
null
值
。
2.
count
(
字段
)不计算
null
值
3.
count
(
null
)结果恒为0
carete table test(id number(10),note varcahr2(10));
--插入数据
insert into test(id,note) values (1,'1');--note列有
值
insert into test(id,note) values (2,'');--note有个'...
解决方案(二选一)
1、在做
统计
时判断
count
的
字段
不为
null
和空
SELECT workPost AS name,
COUNT
(workPost) as value FROM graduateinfo
where workPost is not
null
and workPost != ''
2、前端过滤数据
网上大部分解决方案都是说
count
(
字段
)就能解决,我自己用了并没有效果。
My
Sql
统计
函数
COUNT
详解1.
COUNT
()函数概述2.
COUNT
()参数说明3.
COUNT
()使用场景4.
COUNT
()阿里开发规范
1.
COUNT
()函数概述
COUNT
() 是一个聚合函数,返回指定匹配条件的行数。开发中常用来
统计
表中数据,全部数据,不为
NULL
数据,或者去重数据。
2.
COUNT
()参数说明
COUNT
(1):
统计
不为
NULL
的记录。
COUNT
(*):
统计
所有的记录(包括
NULL
)。
COUNT
(
字段
):
统计
该"
字段
"不为
NULL
的记录。
1.如果这个
字段
是定
这两个概念比较像,所以大部分时候会放在一起说。
这两个概念源于Elasticsearch(后面简称ES)除了强大的搜索功能外,还可以支持排序,聚合之类的操作。搜索需要用到倒排索引,而排序和聚合则需要使用 “正排索引”。说白了就是一句话,倒排索引的优势在于查找包含某个项的文档,而反过来确定哪些项在单个文档里并不高效。
doc_values和fielddata就是用来给文档建立正排索引的。他...
数据库
字段
count
是int型,
值
中有
null
值
,有正整数,有负整数,如果在select is
null
(
count
,0)这么写,数据中还有负数,如果是
null
就为0同时只需要正整数怎么写呢?
1209 - The MySQL server is running with the --read-only option so it cannot execute this statement
85148
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an acti
白墨MO:
Navicat for MySQL 查看BLOB字段内容
qq_32921597: