当前位置: 首页 > 面试题库 >

在SQL中,count(column)和count(*)有什么区别?

黄伟
2023-03-14
问题内容

我有以下查询:

select column_name, count(column_name)
from table
group by column_name
having count(column_name) > 1;

会有什么区别,如果我更换,所有呼叫count(column_name)到count(*)?

这个问题的灵感源于我如何在Oracle的表中找到重复的值?。

为了澄清接受的答案(也许我的问题),替换count(column_name)与count(*)将在包含一个结果返回额外的行null和计数null列中的值。


问题答案:

count(*)计数为NULLcount(column)不是

[编辑]添加了此代码,以便人们可以运行它

create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)

select count(*),count(id),count(id2)
from #bla

结果7 3 2



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 在SQL中,count(column)和count(*)有什么区别? (11个答案) 7年前关闭。 我有以下代码: 如果我将COUNT(*)替换为COUNT(’x’),结果或性能会有所不同吗? (这个问题是关系到一前一) 问题答案: 这么说,导致您的DBMS返回“列”简直是糊涂。 可能 很久以前就是这种情况,但是任何自重的查询优化器都会选择一些快速方法来

  • 问题内容: 和,mysql有什么区别。 问题答案: 计算结果集中的所有行(如果使用GROUP BY,则为组)。 只计算不为空的那些行。即使没有NULL值,在某些情况下这也会变慢,因为必须检查该值(除非该列不可为空)。 与1 相同,因为1永远不能为NULL。 要查看结果的差异,您可以尝试以下小实验: 结果:

  • 本文向大家介绍count(*),count(1)和count(列名)的区别?相关面试题,主要包含被问及count(*),count(1)和count(列名)的区别?时的应答技巧和注意事项,需要的朋友参考一下 count(*),count(1)在统计的时候不会忽略Null,count(列名)在统计的时候会忽略Null。若列名为主键,count(列名)会比count(1),count(*)快,反之则c

  • 问题内容: 只是想知道您是否有人用光了,性能是否存在明显差异,或者这仅仅是过去的日子所养成的传统习惯? 具体的数据库是。 问题答案: 没有区别。 原因: 在线书籍上说“ ” “ 1”是非空表达式:因此与相同。优化器可以识别它是什么:琐碎的。 与或相同 例子: 相同的IO,相同的计划,作品 编辑,2011年8月 关于DBA.SE的类似问题。 编辑,2011年12月 在ANSI-92中专门提到(请查找

  • 本文向大家介绍Select count(*)、Count(1)和Count(列)的区别及执行方式,包括了Select count(*)、Count(1)和Count(列)的区别及执行方式的使用技巧和注意事项,需要的朋友参考一下     在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作

  • 主要内容:1 几种count查询的区别,2 优化COUNT()查询MySQL的count(*)、count(1) 和count(字段)的区别以及count()查询优化手段。 1 几种count查询的区别 count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计值就加1,否则不加。最后返回累计值。 count(*)、count(主键id)和count(1) 都表示返回满足条件的结果集的总行数;而count(字段),则