SQL
Grupa SQL według odrębnych
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