Tagi: over

Zadanie 21.

Utwórz tabelę, gdzie w jednej kolumnie będą liczby od 1 do 10, a w drugiej od 10 do 1. Nie używaj pętli.

Baza: -, Tabela: -, Kolumny: -, Wynik: 10 rows

s21

 

 

 

 

 

 

 

 

Rozwiązanie

WITH CTE AS
(
SELECT 1 as x
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
UNION SELECT 6
UNION SELECT 7
UNION SELECT 8
UNION SELECT 9
UNION SELECT 10
)

SELECT x, ROW_NUMBER() OVER(ORDER BY x DESC) as x2
FROM CTE
ORDER BY x;

[collapse]

Zadanie 28.

Podsumuj pracę przewoźników: podlicz, ile zamówień obsłużyli w każdym roku. W wyniku zaznacz, na którym miejscu jest dany przewoźnik w ilości obsłużonych zamówień.

Baza: Northwind, Tabele: dbo.Orders, dbo.Shippers, Kolumny: CompanyName, OrderDate, ShipVia, ShipperID, Wynik: 9 rows

37

Rozwiązanie

SELECT ROW_NUMBER() OVER(PARTITION BY YEAR(O.OrderDate) ORDER BY COUNT(*) DESC) as Nr, S.CompanyName, YEAR(O.OrderDate) as Year, COUNT(*) as Orders
FROM dbo.Orders as O
JOIN dbo.Shippers as S on O.ShipVia = S.ShipperID
GROUP BY S.CompanyName, YEAR(O.OrderDate)
ORDER BY Year, Orders DESC;

[collapse]

Zadanie 21.

Dla klientów o ID ALFKI, ISLAT, SAVEA stwórz zestawienie, pokazujące ich uporządkowane i ponumerowane według wartości zamówienia.

Baza: Northwind, Tabele: dbo.Orders, dbo.Order Details, Kolumny: CustomerID, OrderID, UnitPrice, Quantity, Wynik: 151 rows

26

Rozwiązanie

SELECT O.CustomerID, O.OrderID, (OD.UnitPrice * OD.Quantity) as OrdVal, ROW_NUMBER() OVER(PARTITION BY O.CustomerID ORDER BY (OD.UnitPrice * OD.Quantity) DESC ) as num

FROM dbo.Orders as O JOIN dbo.[Order Details] as OD on O.OrderID = OD.OrderID WHERE O.CustomerID IN('ALFKI', 'ISLAT', 'SAVEA')

ORDER BY O.CustomerID, OrdVal DESC;

[collapse]
Recent Entries »