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 |