Szukaj…


Różnica między GROUP BY i DISTINCT

GROUP BY jest używana w połączeniu z funkcjami agregacji. Rozważ następującą tabelę:

orderId identyfikator użytkownika Nazwa sklepu orderValue Data zamówienia
1 43 Sklep A. 25 20-03-2016
2) 57 Sklep B 50 22-03-2016
3) 43 Sklep A. 30 25-03-2016
4 82 Sklep C 10 26-03-2016
5 21 Sklep A. 45 29-03-2016

Poniższe zapytanie używa GROUP BY do wykonywania zagregowanych obliczeń.

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;

i zwróci następujące informacje

Nazwa sklepu total_nr_orders nr_unique_customers średnia_wartość_wartości pierwsze zlecenie ostatnie zamówienie
Sklep A. 3) 2) 33,3 20-03-2016 29-03-2016
Sklep B 1 1 50 22-03-2016 22-03-2016
Sklep C 1 1 10 26-03-2016 26-03-2016

Podczas gdy DISTINCT służy do wyświetlenia unikalnej kombinacji odrębnych wartości dla określonych kolumn.

SELECT DISTINCT
    storeName,
    userId
FROM
    orders;
Nazwa sklepu identyfikator użytkownika
Sklep A. 43
Sklep B 57
Sklep C 82
Sklep A. 21


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow