środa, 7 stycznia 2015

Ciekawostka SQL: Tylko pierwsi!

Ciekawe! Jak wyciągnąć TYLKO PIERWSZY REKORD w danej grupie    
rekordów, ale nie ograniczając widoku do tej grupy, tylko po    
wszystkich grupach z tabeli.
Kluczem jest relacja tabeli z SELECTem zagnieżdżonym, tworzącym    
pole tej tabeli (RowNum)
Warto się uczyć SQLka, chłopaki i dziewczyny.
************

SELECT t1.miasto, t1.nazwa,
  (SELECT COUNT(*) FROM [odbiorca$] AS t2 WHERE t2.nazwa <=    
t1.nazwa AND t1.miasto = t2.miasto) AS RowNum
FROM [odbiorca$] t1
WHERE (SELECT COUNT(*) FROM odbiorca AS t2 WHERE t2.nazwa <=    
t1.nazwa AND t1.miasto = t2.miasto) =1
ORDER BY t1.miasto, t1.nazwa

tu tabelka:
http://afin.net/samples/Data/ODBC/SalesInHTML/Odbiorca.htm

A tu wynik:
miasto    nazwa    RowNum
BIALYSTOK    NOWAK    1
CIECHANOW    ANEX    1
GDANSK    GRZESIEX    1
LEGNICA    EDEX    1
OPOLE    BRONEX    1
SZCZECIN    CELIMP    1
WARSZAWA    IMPEX    1
WROCLAW    AREX    1

Tylko pierwsze numerki. Bez OVER PARTITION BY.
Zrobiłem na podstawie    
http://www.experts-exchange.com/Database/MS_Access/Q_24583991.html
z PLIKU EXCELA na STEROWNIKU EXCELOWYM.

Brak komentarzy:

Prześlij komentarz