钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读959311
首页 SQL 正文内容

sql去除重复值后统计个数

钟逸 SQL 2025-07-15 00:42:48 3

在数据分析或数据管理中,经常会遇到需要去除重复值并统计其数量的情况。SQL提供了强大的解决方案来实现这一目标。

使用DISTINCT和COUNT函数

要剔除重复值并计算其个数,可以使用DISTINCT关键字和COUNT函数。DISTINCT可确保只统计唯一值,COUNT可计算满足条件的记录数。语法如下:

sql

SELECT COUNT(DISTINCT column_name)

FROM table_name

WHERE condition;

其中,column_name是要统计其唯一值的列,table_name是目标表,condition是可选的过滤条件。

使用GROUP BY和HAVING子句

另一种 是使用GROUP BY子句对数据进行分组,再使用HAVING子句过滤满足条件的分组。语法如下:

sql

SELECT COUNT(*) AS count

FROM table_name

GROUP BY column_name

HAVING COUNT(*) > 1;

GROUP BY按column_name分组,HAVING COUNT(*) > 1筛选出重复次数大于1的分组,COUNT(*) AS count计算每个分组的记录数。

示例

假设有一个表名为"students",其中包含学生信息,并且student_id列包含重复值。要统计不同学生的个数,可以使用以下SQL语句:

sql

SELECT COUNT(DISTINCT student_id) FROM students;

或者使用GROUP BY和HAVING子句:

sql

SELECT COUNT(*) AS count

FROM students

GROUP BY student_id

HAVING COUNT(*) > 1;

这两种 都会返回不同学生的数量。

文章目录
    搜索