Tagi: distinct

Zadanie 22.

Utwórz kwerendę, która policzy, ile jest niepowtarzających się imion. Zadanie rozwiąż na co najmniej dwa sposoby.

Baza: AdventureWorks2012, Tabela: Person.Person, Kolumna: FirstName, Wynik: 1018 rows

s22

 

 

 

 

 

 

 

Rozwiązanie

1. Z użyciem funkcji row_number i grupowaniem:

SELECT FirstName, ROW_NUMBER() OVER(ORDER BY FirstName) as nr
FROM Person.Person
GROUP BY FirstName
ORDER BY FirstName;

2. Z użyciem funkcji dense_rank i distinct:

SELECT DISTINCT FirstName, DENSE_RANK() OVER(ORDER BY FirstName) as nr
FROM Person.Person
ORDER BY FirstName;

3. Z użyciem tabeli pochodnej i row_number:

SELECT FirstName, ROW_NUMBER() OVER(ORDER BY FirstName) as nr
FROM ( SELECT DISTINCT FirstName FROM Person.Person ) as Tab
ORDER BY FirstName;

[collapse]

Zadanie 8.

Używając podkwerend, pokaż klientów, którzy zamówili produkt nr 28.

Baza: Northwind, Tabele: dbo.Orders, dbo.Order Details, Kolumny: OrderID, CustomerID, ProductID, Wynik: 26 rows

s8

Rozwiązanie

SELECT DISTINCT o.CustomerID
FROM dbo.Orders as o
WHERE o.OrderID in (
SELECT od.OrderID
FROM dbo.[Order Details] as od
WHERE od.ProductID = 28
)
ORDER BY o.CustomerID;

[collapse]

Zadanie 26.

Korzystając z tabeli Customers, dla poszczególnych regionów i miast w USA określ numer kierunkowy telefonu.

Baza: Northwind, Tabela: dbo.Customers, Kolumny: Region, City, Phone, Wynik: 12 rows

34

Rozwiązanie

SELECT DISTINCT Region, City, SUBSTRING(Phone, 2, 3) as Kierunkowy
FROM dbo.Customers
WHERE Country = 'USA'
ORDER BY Region, City;

[collapse]

Zadanie 12.

Napisz kwerendę, która zwróci listę państw, do których dostarczono zamówienia w 1997 roku (nazwy państw nie mogą się powtarzać).

Baza: Northwind, Tabela: dbo.Orders, Kolumny: ShipCountry, ShippedDate, Wynik: 21 rows

17

Rozwiązanie

SELECT DISTINCT ShipCountry

FROM dbo.[Orders]

WHERE YEAR(ShippedDate) = '1997';

[collapse]
Recent Entries »