sql聚合函数中count(*) 和count(1),count(2)结果相同,为什么
5个回答
2011-10-19
展开全部
count(1),其实就是计算一共有多少符合条件的行。
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.。
同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.。
同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。
展开全部
count(*)表示所有数据,count(1),或者count(任何数字或者任何字符)(注意:字符要打'')
表示的意思是,在这个表中,虚拟一列,这一列的值都是括号中的值。
一共多少条数据,那么这个虚拟列就必须有多少条数据(这里解释的有点不好,但是我向您应该明白我想表的意思了),所以count(*)与count(任何值)的结果相同
count(某一列),如果某一行的结果是null,那么这一行将不计算,所以count(某一列)是计算所有
值不为NULL的数据。
表示的意思是,在这个表中,虚拟一列,这一列的值都是括号中的值。
一共多少条数据,那么这个虚拟列就必须有多少条数据(这里解释的有点不好,但是我向您应该明白我想表的意思了),所以count(*)与count(任何值)的结果相同
count(某一列),如果某一行的结果是null,那么这一行将不计算,所以count(某一列)是计算所有
值不为NULL的数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实你不必问他人,自己试验下 就知道什么意思了!
纸上得来终觉浅,绝知此事要躬行!
----有时候不要那么死脑筋嘛!先看看别人怎么说,毕竟人家是前辈嘛!站在巨人的肩膀上,哈哈! 下面是我认为比较好的解释了
1
count(*)和count(1)无区别,有区别估计也是7i,8i时代的东西,如果有索引,并且索引列非空,那么可以走索引,当然加列is not null也可以,对于允许为空的索引列,当然如果真的有空,那么加了条件结果是不同的
count(col)就是按这个col列统计了,如果有索引,不管col是否为空,都能走索引,没有索引那无法走
count(*)和count(1)都是统计所有行的
count(col)统计col列不为空的记录
纸上得来终觉浅,绝知此事要躬行!
----有时候不要那么死脑筋嘛!先看看别人怎么说,毕竟人家是前辈嘛!站在巨人的肩膀上,哈哈! 下面是我认为比较好的解释了
1
count(*)和count(1)无区别,有区别估计也是7i,8i时代的东西,如果有索引,并且索引列非空,那么可以走索引,当然加列is not null也可以,对于允许为空的索引列,当然如果真的有空,那么加了条件结果是不同的
count(col)就是按这个col列统计了,如果有索引,不管col是否为空,都能走索引,没有索引那无法走
count(*)和count(1)都是统计所有行的
count(col)统计col列不为空的记录
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
count(*) 和count(1),count(2) 这3个都代表所有行,因为每行数据都不为null
count(栏位) 就只会统计非空行.
count(栏位) 就只会统计非空行.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
补充,在表的主键不同情况下,count(*)和count(数字)的执行效率是不同的,通常情况下来讲,
count(字段)时,如果字段为主键,则效率最高,count(1)次之,count(*)最慢。
如果字段不为主键,则count(1)最快,count(*)次之,count(字段)最慢
count(字段)时,如果字段为主键,则效率最高,count(1)次之,count(*)最慢。
如果字段不为主键,则count(1)最快,count(*)次之,count(字段)最慢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询