sql 中使用 distinct 去重有兩種方法:select distinct:僅保留指定列的唯一值,保持原始表順序。group by:保留分組鍵的唯一值,重新排序表中行。
SQL 中使用 DISTINCT 去重的兩種方法
在 SQL 中,DISTINCT 運(yùn)算符用于從結(jié)果集中刪除重復(fù)的行,僅保留唯一值。有兩種方法可以使用 DISTINCT 去重:
方法 1:使用 SELECT DISTINCT
此方法通過在 SELECT 語句中使用 DISTINCT 來實(shí)現(xiàn)去重。語法如下:
SELECT DISTINCT 列名1, 列名2, ... FROM 表名;
登錄后復(fù)制
例如:
SELECT DISTINCT 姓名, 年齡 FROM 學(xué)生;
登錄后復(fù)制
此查詢將返回一張含有唯一姓名和年齡組合的新表。
方法 2:使用 GROUP BY
此方法通過使用 GROUP BY 子句來實(shí)現(xiàn)去重。語法如下:
SELECT 列名1, 列名2, ... FROM 表名 GROUP BY 列名1, 列名2, ...;
登錄后復(fù)制
例如:
SELECT 姓名, MIN(年齡) AS 最小年齡 FROM 學(xué)生 GROUP BY 姓名;
登錄后復(fù)制
此查詢將返回一張根據(jù)姓名分組且具有最小年齡的新表。由于姓名是分組鍵,因此新表中只有唯一的姓名。
兩者之間的區(qū)別
DISTINCT 和 GROUP BY 的主要區(qū)別在于:
DISTINCT 保留指定列的所有唯一值,而 GROUP BY 僅保留分組鍵的唯一值。
DISTINCT 保留原始表的順序,而 GROUP BY 重新排序表中的行。
在選擇使用 DISTINCT 還是 GROUP BY 時(shí),需要根據(jù)所要達(dá)到的特定結(jié)果來決定。