Adventureworks 35. Wyświetl klientów którzy złożyli największą liczbę zamówień.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 35

Treść:  Wyświetl klienta/ów który złożył największą liczbę zamówień.
    – jeżeli więcej klientów złożyło taką samą liczbę zamówień wyświetl wszystkich
    – Wyniki posortuj id_klienta (rosnąco)
    – policz tylko te zamówienia które są związane z jakimś sklepem        
    
    Wyniki wyświetl w formacie: identyfikator klienta, nazwa sklepu, liczba zamówień.

Polecenia/funkcje w zapytaniu: SELECT, SELECT TOP 1, FROM, GROUP BY, ORDER BY, SUM(), COUNT()


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


Rozwiązanie:

Pomocniczy schemat

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Zapytanie:

DECLARE @ile int =
        (
            SELECT TOP 1
                COUNT(*)AS LiczbaZamowien
            FROM    
                Sales.SalesOrderHeader O
                JOIN Sales.Customer C ON O.CustomerID = C.CustomerID
                JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
            GROUP BY
                O.CustomerID, S.Name
            ORDER BY
                COUNT(*) DESC, O.CustomerID
        );

    SELECT
          O.CustomerID AS ID_Klienta
         ,S.Name AS NazwaSklepu
         ,COUNT(*)AS LiczbaZamowien
    FROM    
        Sales.SalesOrderHeader O
        JOIN Sales.Customer C ON O.CustomerID = C.CustomerID
        JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
    GROUP BY
        O.CustomerID, S.Name
    HAVING
        COUNT(*)= @ile        
    ORDER BY
        COUNT(*) DESC, O.CustomerID

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.