sql 中 count 用法_sql 中 count 函数统计数据的方法

sql 查询中 count 函数用于统计记录数量,主要有以下用法:1. 基本用法是通过 select count() from table_name 统计所有行,count(字段名) 则排除 NULL 值;2. 搭配 where 可筛选条件后统计,如 select count() from users where status = ‘active’;3. 使用 group by 按维度分组统计,结合 distinct 统计唯一值数量,如 count(distinct username);4. having 对分组结果过滤,如筛选用户数超过 100 的城市。

sql 中 count 用法_sql 中 count 函数统计数据的方法

在 SQL 查询中,COUNT 函数是统计记录数量最常用的工具。它不仅可以统计总行数,还能配合条件、分组等进行更精确的计数。掌握好 COUNT 的用法,对数据分析和报表生成非常关键。

sql 中 count 用法_sql 中 count 函数统计数据的方法


1. 基本用法:统计表中的总记录数

最简单的使用方式是统计一张表里有多少条数据:

SELECT COUNT(*) FROM table_name;

这里的 * 表示统计所有行,不管字段是否为 NULL。这种方式适合快速查看整张表的数据量。比如统计用户表中有多少注册用户时,就可以这样写。

sql 中 count 用法_sql 中 count 函数统计数据的方法

需要注意的是,COUNT(*) 和 COUNT(字段名) 是有区别的:

  • COUNT(*):统计所有行
  • COUNT(字段名):只统计该字段不为 NULL 的行数

例如:

sql 中 count 用法_sql 中 count 函数统计数据的方法

SELECT COUNT(email) FROM users;

这条语句会统计 email 字段不为空的用户数量。


2. 配合 WHERE 条件筛选后统计数量

很多时候我们并不想统计整张表,而是只想知道满足某些条件的数据有多少条。这时候就需要搭配 WHERE 使用。

比如,统计已激活的用户数量:

SELECT COUNT(*) FROM users WHERE status = 'active';

这个方法适用于各种过滤场景,比如按时间、地区、状态等分类统计。

常见误区:有些人可能会先查询出数据再手动统计,但其实一条 COUNT + WHERE 就能搞定,效率更高。


3. 分组统计(GROUP BY)与去重统计(DISTINCT)

如果要按某一维度分组统计数量,就要用到 GROUP BY。比如统计每个城市的用户数量:

SELECT city, COUNT(*) AS user_count FROM users GROUP BY city;

这会返回每个城市及其对应的用户总数。

另外,有时我们需要统计“不同值”的数量,比如有多少个不同的用户名:

SELECT COUNT(DISTINCT username) FROM users;

这个写法会忽略重复的用户名,只统计唯一值的数量。

注意点:

  • DISTINCT 可以作用于多个字段,如 COUNT(DISTINCT name, age)
  • 在大数据量下,DISTINCT 可能会影响性能,建议结合索引或优化查询结构

4. 结合 HAVING 过滤分组结果

有时候我们不仅想分组统计,还想筛选出某些符合条件的组,这时候可以用 HAVING。

例如,找出用户数量超过 100 的城市:

SELECT city, COUNT(*) AS user_count FROM users GROUP BY city HAVING COUNT(*) > 100;

这里 HAVING 后面跟的条件是对分组后的结果做进一步过滤,和 WHERE 不同,WHERE 是在分组前过滤原始数据。


基本上就这些。
COUNT 看起来简单,但实际应用中要注意区分 COUNT(*)、COUNT(字段) 和 COUNT(DISTINCT 字段) 的区别。合理使用 WHERE、GROUP BY 和 HAVING,可以让你的统计更精准高效。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享