Zoeken…


Verschil tussen GROUP BY en DISTINCT

GROUP BY wordt gebruikt in combinatie met aggregatiefuncties. Overweeg de volgende tabel:

Order ID gebruikersnaam winkel naam bestellingswaarde besteldatum
1 43 Winkel A 25 20-03-2016
2 57 Winkel B 50 22-03-2016
3 43 Winkel A 30 25-03-2016
4 82 Winkel C 10 26-03-2016
5 21 Winkel A 45 29-03-2016

De onderstaande query gebruikt GROUP BY om geaggregeerde berekeningen uit te voeren.

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;

en geeft de volgende informatie terug

winkel naam total_nr_orders nr_unique_customers average_order_value eerste bestelling laatste order
Winkel A 3 2 33.3 20-03-2016 29-03-2016
Winkel B 1 1 50 22-03-2016 22-03-2016
Winkel C 1 1 10 26-03-2016 26-03-2016

Terwijl DISTINCT wordt gebruikt om een unieke combinatie van verschillende waarden weer te geven voor de opgegeven kolommen.

SELECT DISTINCT
    storeName,
    userId
FROM
    orders;
winkel naam gebruikersnaam
Winkel A 43
Winkel B 57
Winkel C 82
Winkel A 21


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow