GROUP BY和DISTINCT有什么区别?
🎈边走、边悟🎈迟早会好 |
GROUP BY
和 DISTINCT
是 SQL 中用于处理重复数据的两个不同的功能。虽然它们都用于从结果集中去重,但它们的用途和工作原理有明显的区别:
1. DISTINCT
- 用途:用于选择唯一的不同值。
- 适用场景:通常在查询的 SELECT 语句中使用,用于获取某列或多列的不同值。
- 语法示例:
SELECT DISTINCT column1, column2 FROM table_name;
- 返回结果:只返回指定列中不重复的记录。
2. GROUP BY
- 用途:用于将结果集中的数据分组,以便进行聚合计算(如 COUNT、SUM、AVG 等)。
- 适用场景:常与聚合函数一起使用,以便在分组后进行计算。
- 语法示例:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
- 返回结果:返回每个分组的结果,通常还会包含聚合计算的结果。
主要区别
- 功能:
DISTINCT
只用于去重,不进行聚合计算。GROUP BY
用于分组并通常结合聚合函数进行计算。
- 返回结果:
DISTINCT
返回的是唯一的记录。GROUP BY
返回每个组的聚合结果。
示例
假设有一个名为 sales
的表,其中包含以下数据:
product | quantity |
---|---|
A | 10 |
A | 20 |
B | 15 |
C | 10 |
-
使用
DISTINCT
:SELECT DISTINCT product FROM sales;
返回结果为:
A
B
C -
使用
GROUP BY
:SELECT product, SUM(quantity) AS total_quantity FROM sales GROUP BY product;
返回结果为:
A | 30 B | 15 C | 10
总结来说,DISTINCT
主要用于去重,而 GROUP BY
用于数据分组和聚合计算。
🌟感谢支持 听忆.-CSDN博客
🎈众口难调🎈从心就好 |