在 SQL 中,DISTINCT
關鍵字用于返回唯一不同的值。當它與聚合函數(如 COUNT、SUM、AVG 等)一起使用時,它會對這些函數中的每個唯一值進行計數或計算。
以下是一些使用 DISTINCT
與聚合函數的示例:
SELECT COUNT(DISTINCT column_name) FROM table_name;
例如,如果你有一個名為 orders
的表,其中包含 customer_id
列,并且你想知道有多少不同的客戶下了訂單,你可以這樣寫:
SELECT COUNT(DISTINCT customer_id) FROM orders;
SELECT SUM(DISTINCT column_name) FROM table_name;
例如,如果你有一個名為 orders
的表,其中包含 order_amount
列,并且你想知道所有不同訂單金額的總和,你可以這樣寫:
SELECT SUM(DISTINCT order_amount) FROM orders;
AVG(DISTINCT ...)
的語法。在這種情況下,你可能需要使用子查詢或其他方法來計算平均值。例如,在 MySQL 中,你可以這樣計算不同訂單金額的平均值:
SELECT AVG(order_amount) FROM (SELECT DISTINCT order_amount FROM orders) AS subquery;
DISTINCT
一起使用,盡管它們的用法可能因數據庫系統而異。在使用之前,建議查閱特定數據庫系統的文檔。需要注意的是,使用 DISTINCT
與聚合函數時,查詢的性能可能會受到影響,特別是在處理大型數據集時。因此,在進行優化時,請考慮數據的分布和查詢計劃。