SQL
SQL Group By vs Distinct
Recherche…
Différence entre GROUP BY et DISTINCT
GROUP BY
est utilisé en combinaison avec les fonctions d'agrégation. Considérons le tableau suivant:
numéro de commande | identifiant d'utilisateur | nom du magasin | valeur de la commande | date de commande |
---|---|---|---|---|
1 | 43 | Magasin a | 25 | 20-03-2016 |
2 | 57 | Magasin B | 50 | 22-03-2016 |
3 | 43 | Magasin a | 30 | 25-03-2016 |
4 | 82 | Magasin C | dix | 26-03-2016 |
5 | 21 | Magasin a | 45 | 29-03-2016 |
La requête ci-dessous utilise GROUP BY
pour effectuer des calculs agrégés.
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;
et renverra les informations suivantes
nom du magasin | total_nr_orders | nr_unique_customers | average_order_value | Premier ordre | dernière commande |
---|---|---|---|---|---|
Magasin a | 3 | 2 | 33,3 | 20-03-2016 | 29-03-2016 |
Magasin B | 1 | 1 | 50 | 22-03-2016 | 22-03-2016 |
Magasin C | 1 | 1 | dix | 26-03-2016 | 26-03-2016 |
Alors que DISTINCT
est utilisé pour répertorier une combinaison unique de valeurs distinctes pour les colonnes spécifiées.
SELECT DISTINCT
storeName,
userId
FROM
orders;
nom du magasin | identifiant d'utilisateur |
---|---|
Magasin a | 43 |
Magasin B | 57 |
Magasin C | 82 |
Magasin a | 21 |
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow