GROUP BY 和 DISTINCT 之間的區別
GROUP BY
與聚合函式結合使用。請考慮下表:
訂單 ID | 使用者身份 | STORENAME | orderValue | 訂購日期 |
---|---|---|---|---|
1 |
43 | 商店 A. | 25 | 20-03-2016 |
2 |
57 | 商店 B | 50 | 22-03-2016 |
3 |
43 | 商店 A. | 三十 | 25-03-2016 |
4 |
82 | 儲存 C | 10 | 26-03-2016 |
五 | 21 | 商店 A. | 45 | 29-03-2016 |
下面的查詢使用 GROUP BY
執行聚合計算。
SELECT
storeName,
COUNT(*) AS total_nr_orders,
COUNT(DISTINCT userId) AS nr_unique_customers,
AVG(orderValue) AS average_order_value,
MIN(orderDate) AS first_order,
MAX(orderDate) AS lastOrder
FROM
orders
GROUP BY
storeName;
並將返回以下資訊
STORENAME |
total_nr_orders | nr_unique_customers | average_order_value | 第一個訂單 | 最後的訂單 |
---|---|---|---|---|---|
商店 A. | 3 | 2 | 33.3 | 20-03-2016 | 29-03-2016 |
商店 B | 1 | 1 | 50 | 22-03-2016 | 22-03-2016 |
儲存 C | 1 | 1 | 10 | 26-03-2016 | 26-03-2016 |
雖然 DISTINCT
用於列出指定列的不同值的唯一組合。
SELECT DISTINCT
storeName,
userId
FROM
orders;
STORENAME |
使用者身份 |
---|---|
商店 A. | 43 |
商店 B | 57 |
儲存 C | 82 |
商店 A. | 21 |