SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解

count函数用于统计行数,包括COUNT(*)统计所有行、COUNT(列名)忽略NULL值、COUNT(DISTINCT 列名)统计唯一非空值,可结合WHERE条件和GROUP BY分组实现多维度计数。

SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解

sql中,COUNT函数用于统计查询结果中行的数量,是聚合函数中最常用的一个。它可以用来统计表中的总记录数、某列非空值的个数,或结合条件进行分组统计。下面详细介绍其用法和常见实例。

COUNT(*) 统计所有行数

使用 COUNT(*) 可以统计查询返回的所有行数,包括包含NULL值的行。

例如:统计学生表中的总人数

select COUNT(*) AS total_students FROM students;

这会返回students表中所有记录的总数,不管任何字段是否为NULL。

COUNT(列名) 统计非空值数量

COUNT(列名) 只统计该列中非NULL值的行数,忽略NULL值。

例如:统计有电话号码的学生数量

SELECT COUNT(phone) AS has_phone_count FROM students;

如果phone字段中有10条记录为NULL,则这些不会被计入结果。

COUNT(DISTINCT 列名) 统计唯一值个数

使用 COUNT(DISTINCT 列名) 可以统计某一列中不同(去重后)非NULL值的数量。

例如:统计选课表中不同学生的数量

SELECT COUNT(DISTINCT student_id) AS unique_students FROM enrollments;

SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解

阿里云-虚拟数字人

阿里云-虚拟数字人是什么? …

SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解2

查看详情 SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解

即使一个学生有多条选课记录,也只计算一次。

结合WHERE条件进行条件计数

COUNT常与WHERE子句配合,实现条件统计。

例如:统计年龄大于20岁的学生人数

SELECT COUNT(*) AS count_over_20 FROM students WHERE age > 20;

只有满足条件的行才会被COUNT函数统计。

也可以在单个查询中实现多条件计数:

SELECT
  COUNT(*) AS total,
  COUNT(CASE WHEN gender = 'M' THEN 1 END) AS male_count,
  COUNT(CASE WHEN gender = 'F' THEN 1 END) AS female_count
FROM students;

这种方式可以在一次查询中分别统计男女数量。

结合GROUP BY进行分组统计

使用GROUP BY可以按某一列分组,并对每组进行计数。

例如:统计每个班级的学生人数

SELECT class_id, COUNT(*) AS student_count FROM students GROUP BY class_id;

结果会列出每个class_id对应的學生数量。

基本上就这些。掌握COUNT(*)、COUNT(列名)和COUNT(DISTINCT)的区别,再结合WHERE和GROUP BY,就能应对大多数统计需求。关键是要清楚NULL值是否参与统计,以及是否需要去重。不复杂但容易忽略细节。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇
text=ZqhQzanResources