DISTINCT 做法
SELECT COUNT(DISTINCT column_name) FROM table_name;
GROUP BY 做法
SELECT COUNT(*) FROM (
SELECT region_name, SUM(sales) AS total_sales FROM table_name GROUP BY region_name
HAVING total_sales >1000
) AS temp;
两者差异如下:
1.语法和用途不同
- DISTINCT 是一个关键字,直接放在SELECT后用于去除重复行
- GROUP BY 是一个子句,用于分组并对每组进行聚合计算
2.性能差异
- 在简单去重场景下,DISTINCT 通常比 GROUP BY 性能稍好
- 在复杂查询中,GROUP BY 可能更高效,特别是当需要聚合函数时
3.结果集处理
- DISTINCT 只是简单地去除完全相同的行
- GROUP BY 会先分组,然后可以选择显示每组的聚合结果