Adventureworks 27a. Oblicz czy wartość zamówienia jest mniejsza czy większa/równa średniej wartość zamówień. Wykorzystaj deklarację zmiennej.

Baza : Adventureworks

Zadanie nr: 27a

Treść: Oblicz (w osobnej kolumnie) czy wartość zamówienia jest mniejsza (wartość 0) czy większa/równa (wartość 1) średniej wartość zamówień. Średnią wartość zamówień oblicz przed głównym zapytaniem i jej wartość "wrzuć" do zmiennej i wykorzystaj ją w zapytaniu głownym.

Polecenia/funkcje w zapytaniu: SELECT, FROM, CASE, SUM(), AVG(), GROUP BY, DECLARE, SET


   


Rozwiązanie:

 

Zapytanie:

DECLARE @srednia float;
SET @srednia = (SELECT
                    AVG(Suma) AS ŚredniaWartośćZamówienia
                FROM
                    (    
                        SELECT
                            SalesOrderID
                            ,SUM(UnitPrice)AS Suma
                        FROM
                            Sales.SalesOrderDetail
                        GROUP BY
                            SalesOrderID)AS query);
 
SELECT
    SalesOrderID
    ,SUM(UnitPrice)AS Suma
    ,CASE
        WHEN SUM(UnitPrice)< (@srednia) THEN 0             
        ELSE 1                
        END    AS [0-mniejsze niż śr./1-większe,równe śr]                                
FROM
    Sales.SalesOrderDetail
GROUP BY
    SalesOrderID   

Wynik uruchomienia zapytania

Liczba rekordów: 31465

Pobierz skrypt sql