MySQL 进行去重操作

156 阅读1分钟

在 MySQL 中,使用 DISTINCT 关键字来进行去重操作。以下是一些使用 DISTINCT 的例子:

1. 单列去重

-- 根据 aid(文章 ID)去重
SELECT DISTINCT aid FROM pageview;

2. 多列去重

-- 根据 aid(文章 ID)和 uid(用户 ID)联合去重
SELECT DISTINCT aid, uid FROM pageview;

3. 聚合函数 + 去重

-- 统计 aid 去重之后的总数量
SELECT COUNT(DISTINCT aid) AS total_count FROM pageview;

4. 使用 GROUP BY 实现去重

虽然 DISTINCT 通常用于去重,但在某些情况下,也可以使用 GROUP BY 来达到去重的效果。下面是一些使用 GROUP BY 的例子:

4.1 单列去重

-- 根据 aid(文章 ID)去重
SELECT aid FROM pageview GROUP BY aid;

4.2 多列去重

-- 根据 aid(文章 ID)和 uid(用户 ID)联合去重
SELECT aid, uid FROM pageview GROUP BY aid, uid;

4.3 聚合函数 + GROUP BY

-- 统计每个 aid 的总数量
SELECT aid, COUNT(*) AS total_count FROM pageview GROUP BY aid;

区分 DISTINCT 和 GROUP BY

  • 使用 DISTINCT 更直观和简单,适合单纯的去重操作。
  • 使用 GROUP BY 更灵活,可以进行更复杂的聚合操作,适合需要聚合函数或其他计算的情况。

总体而言,根据实际需求选择合适的语法结构。如果只是简单的去重,使用 DISTINCT 会更清晰。如果需要进行更复杂的聚合操作,使用 GROUP BY 更灵活。