在MySQL中,DISTINCT
關鍵字用于返回唯一不同的值。當你需要從表中刪除重復的數據行時,可以使用DISTINCT
。以下是如何使用DISTINCT
進行數據清洗的一些方法:
employees
的表,其中包含員工的姓名、職位和部門。如果你只想查看每個部門的唯一職位,你可以這樣做:SELECT DISTINCT department, position
FROM employees;
這將返回每個部門和其對應的唯一職位。
2. 刪除重復的數據:
如果你確定要刪除重復的行,并且知道哪些列是重復的,你可以使用子查詢和NOT EXISTS
來刪除它們。例如,如果你只想保留每個部門的第一個員工(基于某個日期,比如入職日期),你可以這樣做:
DELETE t1 FROM employees t1
JOIN employees t2 ON t1.department = t2.department AND t1.position = t2.position AND t1.hire_date > t2.hire_date;
在這個例子中,t1
是你要刪除的重復行,而t2
是與t1
比較以確定是否刪除的行。
3. 結合其他列進行去重:
有時,你可能想基于多個列來去除重復項。例如,如果你有一個包含學生信息的表,并且你想根據學生的姓名、班級和成績來去除重復項,你可以這樣做:
SELECT DISTINCT name, class, score
FROM students;
注意事項:
DISTINCT
時,請確保你明確知道你在做什么,因為刪除重復數據可能會導致數據丟失。總之,DISTINCT
是MySQL中一個非常有用的關鍵字,可以幫助你清洗和整理數據。但在使用它時,請務必小心,并確保你了解它的作用。