sql语句中count(*)与count(abc)的区别我想统计t_abc这张表中abc字段的基数,分别执行以下两种:一:SELECT abd,COUNT(*) 数量FROM t_abcgroup by abc二:SELECT abd,COUNT(abc) 数量FROM t_abcgroup by abc执行结果一

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 16:40:59
sql语句中count(*)与count(abc)的区别我想统计t_abc这张表中abc字段的基数,分别执行以下两种:一:SELECTabd,COUNT(*)数量FROMt_abcgroupbyabc

sql语句中count(*)与count(abc)的区别我想统计t_abc这张表中abc字段的基数,分别执行以下两种:一:SELECT abd,COUNT(*) 数量FROM t_abcgroup by abc二:SELECT abd,COUNT(abc) 数量FROM t_abcgroup by abc执行结果一
sql语句中count(*)与count(abc)的区别
我想统计t_abc这张表中abc字段的基数,分别执行以下两种:
一:
SELECT abd,COUNT(*) 数量
FROM t_abc
group by abc
二:
SELECT abd,COUNT(abc) 数量
FROM t_abc
group by abc
执行结果一样.
但同事告诉我正确的应该是第一种写法.

sql语句中count(*)与count(abc)的区别我想统计t_abc这张表中abc字段的基数,分别执行以下两种:一:SELECT abd,COUNT(*) 数量FROM t_abcgroup by abc二:SELECT abd,COUNT(abc) 数量FROM t_abcgroup by abc执行结果一
区别在于
当abc为空的时候,第二种不算入count中
而第一种是无条件的都算入count中
比例一列数据
字段名叫abc
A
B
NULL
这样的话,第一种查询是3条,而第二种查询的结果是2条
你可以自己弄几条数据测试一下,就知道结果了