Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
Rozdział1:FunkcjeoknawjęzykuSQL
SELECTorderid,orderdate,val,
FROMSales.OrderValues;
Atrybutyzamówienia(orderid,orderdate,val)
Zbiórwynikowy(orderid,orderdate,val,rnk)
(10417,2007-01-1600:00:00.000,11188.40)
(11030,2008-04-1700:00:00.000,12615.05)
(10981,2008-03-2700:00:00.000,15810.00)
(10865,2008-02-0200:00:00.000,16387.50)
(10889,2008-02-1600:00:00.000,11380.00)
RANK()OVER(ORDERBYvalDESC)ASrnk
(10889,2008-02-1600:00:00.000,11380.00,4)
(10417,2007-01-1600:00:00.000,11188.40,5)
(10981,2008-03-2700:00:00.000,15810.00,2)
(10865,2008-02-0200:00:00.000,16387.50,1)
(11030,2008-04-1700:00:00.000,12615.05,3)
RYSUNEK1-1Danewejścioweiwyjściowekwerendyzfunkcjąokna
Otoskróconywynikwykonaniaprzedstawionejkwerendy(kolejnośćwierszyniejest
gwarantowana):
orderid
orderdate
val
rnk
---
---
-----
---
---
---
---
---
---
-----
---
---
---
10865
2008-02-0200:00:00i00016387i50
1
10981
2008-03-2700:00:00i00015810i00
2
11030
2008-04-1700:00:00i00012615i05
3
10889
2008-02-1600:00:00i00011380i00
4
10417
2007-01-1600:00:00i00011188i40
5
iii
Przykładowauproszczonaprocedurawyznaczaniapozycjiwrankingumożezostać
opisanaprzypomocypseudokoduwnastępującysposób:
poukładajwierszewedługwartościval
wykonajiteracjępowierszach
dlakażdegowiersza
jeślibieżącywierszjestpierwszymwpartycjizwróć1
wprzeciwnymprzypadku:jeśliwartośćvalrównasiępoprzedniejwartościval,