SQL分组查询子句对比

三个子句在分组查询中扮演着不同的角色,协同完成数据筛选和分组统计:

| 子句 | 作用 | 执行顺序 |

|---|---|---|

| WHERE | 从原始数据集中筛选符合条件的行 | 在 GROUP BY 之前执行 |

| GROUP BY | 将筛选后的数据行按照指定列分组 | 在 WHERE 之后,HAVING 之前执行 |

| HAVING | 对分组后的结果集进行筛选,去除不符合条件的组 | 在 GROUP BY 之后执行 |

简单来说:

  • WHERE: 像过滤器,在分组前剔除不需要的行。
  • GROUP BY: 像分类器,将数据按指定列分成不同组别。
  • HAVING: 像组过滤器,筛选符合条件的组。