Поиск…


Разница между GROUP BY и DISTINCT

GROUP BY используется в сочетании с функциями агрегации. Рассмотрим следующую таблицу:

номер заказа Идентификатор пользователя название магазина Ценность заказа Дата заказа
1 43 Магазин A 25 20-03-2016
2 57 Магазин B 50 22-03-2016
3 43 Магазин A 30 25-03-2016
4 82 Магазин C 10 26-03-2016
5 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;

и вернет следующую информацию

название магазина 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;
название магазина Идентификатор пользователя
Магазин A 43
Магазин B 57
Магазин C 82
Магазин A 21


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow