*SQL 中 COUNT() 与 COUNT(Column) 的区别**
在 SQL 中,聚合函数 COUNT(*) 和 COUNT(column) 分别提供用于计数表中数据行和列的不同机制。
COUNT() 统计指定表中的所有行,不包括 NULL 值。这意味着 COUNT() 返回非 NULL 行的总数,而不管哪些列包含数据。
另一方面,COUNT(column) 统计指定列不为 NULL 的行数。这允许选择性地统计特定列中的非 NULL 值。
*用 COUNT() 替换 COUNT(column)**
将查询中所有 COUNT(column_name) 实例替换为 COUNT(*) 将产生以下影响:
演示
为了说明这种差异,让我们重现原始问题中概述的场景:
<code class="language-sql">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</code>
结果:
<code>7 3 2</code>
在此示例中,COUNT(*) 列统计所有七行,包括两行 id 和 id2 都为 NULL 的行。COUNT(id) 列仅统计 id 不为 NULL 的三行,而 COUNT(id2) 统计 id2 不为 NULL 的两行。
以上是COUNT(*) 与 COUNT(Column):SQL 行计数有何区别?的详细内容。更多信息请关注PHP中文网其他相关文章!