Sök…


Skillnad mellan GROUP BY och DISTINCT

GROUP BY används i kombination med aggregeringsfunktioner. Tänk på följande tabell:

OrderID användar ID affärsnamn beställningsvärde orderdatum
1 43 Store A 25 20-03-2016
2 57 Store B 50 22-03-2016
3 43 Store A 30 25-03-2016
4 82 Store C 10 26-03-2016
5 21 Store A 45 29-03-2016

Frågan nedan använder GROUP BY att utföra aggregerade beräkningar.

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;

och kommer att returnera följande information

affärsnamn total_nr_orders nr_unique_customers average_order_value första beställning sista beställningen
Store A 3 2 33,3 20-03-2016 29-03-2016
Store B 1 1 50 22-03-2016 22-03-2016
Store C 1 1 10 26-03-2016 26-03-2016

Medan DISTINCT används för att lista en unik kombination av distinkta värden för de angivna kolumnerna.

SELECT DISTINCT
    storeName,
    userId
FROM
    orders;
affärsnamn användar ID
Store A 43
Store B 57
Store C 82
Store A 21


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow