SQL
SQL Group per contro distinto
Ricerca…
Differenza tra GROUP BY e DISTINCT
GROUP BY
viene utilizzato in combinazione con le funzioni di aggregazione. Considera la seguente tabella:
ID ordine | ID utente | nome del negozio | orderValue | data dell'ordine |
---|---|---|---|---|
1 | 43 | Negozio A | 25 | 20-03-2016 |
2 | 57 | Negozio B | 50 | 22-03-2016 |
3 | 43 | Negozio A | 30 | 25-03-2016 |
4 | 82 | Negozio C | 10 | 26-03-2016 |
5 | 21 | Negozio A | 45 | 29-03-2016 |
La query seguente utilizza GROUP BY
per eseguire calcoli aggregati.
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;
e restituirà le seguenti informazioni
nome del negozio | total_nr_orders | nr_unique_customers | average_order_value | primo ordine | ultimo ordine |
---|---|---|---|---|---|
Negozio A | 3 | 2 | 33.3 | 20-03-2016 | 29-03-2016 |
Negozio B | 1 | 1 | 50 | 22-03-2016 | 22-03-2016 |
Negozio C | 1 | 1 | 10 | 26-03-2016 | 26-03-2016 |
Mentre DISTINCT
viene utilizzato per elencare una combinazione univoca di valori distinti per le colonne specificate.
SELECT DISTINCT
storeName,
userId
FROM
orders;
nome del negozio | ID utente |
---|---|
Negozio A | 43 |
Negozio B | 57 |
Negozio C | 82 |
Negozio A | 21 |
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow