SQL 计算行数,计算一个表的总行数,或者计算某列中值的个数。例如,希望知道员工总数和各部门的员工人数。
SQL 计算行数 问题描述
计算一个表的总行数,或者计算某列中值的个数。例如,希望知道员工总数和各部门的员工人数。
SQL 计算行数 解决方案
当计算整个表的总行数时,只需要使用 COUNT
函数和符号 *
即可。
如果把数据分为多组,就需要使用 COUNT
函数和 GROUP BY
子句。
SQL 计算行数 扩展知识
计算各部门的员工人数的时候,我们就是在对数据进行分组。每多一个员工,则总数加一,最终会计算出各个部门的员工人数。本例使用了 SQL 做聚合运算,因为重点关注的不是诸如某个员工的工资或职位这样的详细信息,而是各个部门的员工人数。注意,当把列名称作为参数的时候,COUNT
函数会忽略 Null
。使用符号 *
或者常量参数的时候,就会包含 Null
,考虑下面的例子。
如果参数列的值都为 Null
,或者表里没有任何数据,COUNT
函数就会返回 0
。请注意,即使 SELECT
子句里只有聚合函数,我们仍然可以按照其他列对表中的数据进行分组,如下所示。
注意,尽管 DEPTNO
不存在于 SELECT
列表里,我们仍然按照该列进行分组。把用于分组的列放入 SELECT
子句通常有助于提高可读性,但这并不是必需的。反之,如果某列被放入了 SELECT
列表,那么我们就必须保证它也存在于 GROUP BY
子句里。