一、DISTINCT的基本含義
SQL中的DISTINCT關鍵字是用來篩選出唯一不同的記錄。當我們在查詢某一列的數據時,可能會出現一些重複的情況,這時候我們就可以使用DISTINCT來消除掉這些重複。
二、DISTINCT的使用方法
在SELECT語句中,只需要在需要去重的列名前加上DISTINCT關鍵字即可:
SELECT DISTINCT column_name FROM table_name;
例如:
SELECT DISTINCT city FROM employee;
這條語句會返回所有不同的城市名稱。
三、DISTINCT的應用場景
1、查詢唯一的值
使用DISTINCT可以查詢某一列中的不同的值。例如,我們可以使用DISTINCT查詢一張表中所有不同的城市:
SELECT DISTINCT city FROM employee;
這條語句返回一個城市列表,其中每個城市只會出現一次。
2、查詢聯合表中的唯一記錄
在多張表聯合查詢時可能存在重複記錄,使用DISTINCT可以消除這些重複的記錄。例如,我們可以查詢所有訂單的客戶名稱,但是多張表中客戶名稱可能會重複:
SELECT DISTINCT customer_name FROM orders o JOIN customers c ON o.customer_id = c.customer_id;
這條語句會返回一個客戶名稱列表,其中每個客戶名稱只會出現一次。
3、查詢聚合函數的結果
在使用聚合函數計算最大、最小、平均值等時,使用DISTINCT可以計算唯一值的結果。
例如,我們可以計算不同銷售員的銷售總額:
SELECT DISTINCT salesperson, SUM(total_amount) FROM orders GROUP BY salesperson;
這條語句會返回每個銷售員的銷售總額,每個銷售員只會出現一次。
4、計算列的總數
使用DISTINCT可以查詢某一列中唯一值的數量。
例如,我們可以查詢訂單中所有不同的城市數量:
SELECT COUNT(DISTINCT city) FROM orders;
這條語句會返回所有不同城市的數量。
四、DISTINCT與ORDER BY
在使用DISTINCT時,也可以同時使用ORDER BY來對篩選結果進行排序。
例如,我們可以查詢各個城市的平均銷售額,並按照平均銷售額從高到低進行排序:
SELECT city, AVG(total_amount) FROM orders GROUP BY city ORDER BY AVG(total_amount) DESC;
這條語句會返回每個城市的平均銷售額,並按照平均銷售額從高到低排序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154026.html