备注:测试数据库版本为MySQL 8.0
如需要scott用户下建表及录入数据语句,可参考: scott建表及录入数据sql脚本
计算一个表的行数,或计算某个列中值的个数。例如,找到职员总数及每个部门的职员数。
计数使用count(*) 即可 如果要对表内分组进行计数,可以用group by和count(*)即可 count(*)是表的总数,count(列)是列不为空的总数
代码:
select count(*) from emp; select deptno,count(*) from emp group by deptno; select deptno,count(*),count(comm),count('hello') from emp group by deptno;测试记录:
mysql> select count(*) -> from emp; +----------+ | count(*) | +----------+ | 14 | +----------+ 1 row in set (0.01 sec) mysql> select deptno,count(*) -> from emp -> group by deptno; +--------+----------+ | deptno | count(*) | +--------+----------+ | 10 | 3 | | 20 | 5 | | 30 | 6 | +--------+----------+ 3 rows in set (0.00 sec) -- count(comm) 只统计comm不为null的个数 mysql> select deptno,count(*),count(comm),count('hello') -> from emp -> group by deptno; +--------+----------+-------------+----------------+ | deptno | count(*) | count(comm) | count('hello') | +--------+----------+-------------+----------------+ | 10 | 3 | 3 | 3 | | 20 | 5 | 0 | 5 | | 30 | 6 | 4 | 6 | +--------+----------+-------------+----------------+ 3 rows in set (0.01 sec)