plsem02b --1 Wprowadzenie 2 Operatory agregujące SQL.pdf
(
71 KB
)
Pobierz
Microsoft Word - 2 mzakrz1.doc
Implementacja przetwarzania analitycznego przy wykorzystaniu Oracle9i OLAP
25
1 Wprowadzenie
!"#$ %
&$&'(&
&&(&&
wielowymiarowych magazynów (hurtowni) danych. Po drugie, systemy relacyjnych baz danych
&&&$
) !"#
&& *$+&&&
,))&&$-
& !"#''
funkcje rankingowe itp.
W artykule prze
* &) !"#
. /$ ) &$ 0 &
& ' ) & & &
1%2"3$0& *'
))&$%)
podsumowanie.
2
2.1 Operator ROLLUP
1%2"3& 44-,'&
& & $ # '
agre
)(&&'
nie kilku oddzielnych z
&' & &&( ( &$
!& & %2 )
&' & ) $ &
&)&'&&&
')$
select region, produkt, sum(kwota)
from sprzedaz
group by
rollup(region, produkt)
REGION PRODUKT SUM(KWOTA)
-------------- ------------ ----------
Mazowsze Oleje 23000
Mazowsze Opony 97000
Mazowsze Reflektory 97000
Mazowsze 1367000
Wielkopolska Oleje 230000
Wielkopolska Opony 152000
Wielkopolska Reflektory 48000
Wielkopolska 660000
2027000
zarz
Orac
Operator ROLLUP stanowi rozszerze
26
Maciej Zakrzewicz
2&%2)
&&&561%2"3%417+'%#28,9'61%2
BY REGION” i „GROUP BY NULL”.
2.2 O
PERATOR
CUBE
& -2"4 1%2 "3 & 44-,$
Zapyta
roduktów
w
''&)$
select region, produkt, sum(kwota)
from sprzedaz
group by
cube(region, produkt)
REGION PRODUKT SUM(KWOTA)
-------------- ------------ ----------
Mazowsze Oleje 23000
Mazowsze Opony 97000
Mazowsze Reflektory 97000
Mazowsze 1367000
Wielkopolska Oleje 230000
Wielkopolska Opony 152000
Wielkopolska Reflektory 48000
Wielkopolska 660000
Oleje 253000
Opony 249000
Reflektory 145000
2027000
2 & -2"4 )
za
&&&561%2"3%417+'%#28,9'61%2
BY REGION”, „GROUP BY PRODUKT” i „GROUP BY NULL”.
2.3 O
PERATOR
GROUPING SETS
&1%27+1 4, &
jednym przebiegu zapytania SELECT. Jego argumentem jest lista wielu zestawów kolumn
grupu
select region, produkt, sum(kwota)
from sprzedaz
group by
grouping sets((region, produkt),(produkt))
REGION PRODUKT SUM(KWOTA)
-------------- ------------ ----------
Mazowsze Oleje 23000
Wielkopolska Oleje 230000
Oleje 253000
Mazowsze Opony 97000
Wielkopolska Opony 152000
Opony 249000
Mazowsze Reflektory 97000
&-2"4)&'
&)&$&
&)&'&&&
$&&)&'&
w ramach produktów w regionach oraz w ramach produktów.
Implementacja przetwarzania analitycznego przy wykorzystaniu Oracle9i OLAP
27
Wielkopolska Reflektory 48000
Reflektory 145000
2&1%27+1 4, )
&&&5
„GROUP BY REGION, PRODUKT” i
„GROUP BY PRODUKT”.
3 Funkcje analityczne SQL
3.1 P
ARTYCJE OBLICZENIOWE
ELECT. Dla
&'&&($
) *&&. !"#'
&
kordu grupy (a nie tylko raz dla
) &$ 0 ' 1%2 "3 (
zast
&%,7,7+&5
funkcja_grupowa()
over (partition by
kolumna
)
gdzie:
-
funkcja()
to tradycyjna funkcja grupowa,
-
kolumna()
&
grupowej.
0 %,7,7+ & & & '
&)
o
) &&$ & &)
%,7,7+ & 2:
ego rekordu
select region, produkt, kwota,
sum(kwota) over (partition by region)
sum_kwota,
round(100*kwot !"#$%&'()"
from sprzedaz
order by region, produkt
REGION PRODUKT KWOTA
SUM_KWOTA
#$%&'()
-------------- ------------ ---------- ---------- ----------
Mazowsze Oleje 23000
1367000
2
Mazowsze Opony 97000
1367000
7
Mazowsze Reflektory 97000
1367000
7
1367000
84
Wielkopolska Oleje 230000
660000
35
Wielkopolska Opony 152000
660000
23
Wielkopolska Reflektory 48000
660000
7
660000
35
!&&&)'&)
umików stanowi na Mazowszu
.<=&$
,&'&) 2:';1-2+,'
&&1%2"3&
28
Maciej Zakrzewicz
! ) ( && &5
RA
,7>,>%4%,$ ? &&
) & $
RA
,7>,>%4%,&&&(&
&&&&)$
+&('&&%,7,7+
1%2 "3 &$ 0 & &
charak
&$ 0 & & & )
1%2 "3 $ 0
pows
)&&&'%,7,7+'
&$
3.2 R
UCHOME OKNO OBLICZENIOWE
0&(&
grupy rekordów
& $ 1& (
defi
&&%0 %+14$0%0 $
fi
''%+14
$'$
# ) %+14 &
)5
funkcja()
over ([partition by
kol1
] order by
kol2
[desc] range between
wyr1
and
wyr2
)
gdzie:
-
funkcja()
to funkcja grupowa ,
-
kol1
&&'&
@&
partition
'&&)'
-
kol2
to kolumna (lub w
&&'
-
desc
&&&'
-
wyr1
&)&'
-
wyr2
&)$
0
wyr1
&&&(5
- UNBOUNDED PRECEDING –
&&&'
- CURRENT ROW –
&&'
- n PRECEDING –
&&
kol2
(
- INTERVAL ‘n’ DAYS | MONTHS | YEARS PRECEDING –
desc
'
&
re
&
kol2
(
n
AA
desc
$
0
wyr2
&&&(5
- UNBOUNDED FOLLOWING –
&'
- CURRENT ROW –
&'
- n FOLLOWING –
&
kol2
(
- INTERVAL ‘n’ DAYS | MONTHS | YEARS FOLLOWING –
desc
'
rekor
&
kol2
(
n
AA
desc
mniej
$
' )
uczowego RANGE stosujemy
)
o
%0 $'7+,4%;$
w
n
o
n
n
Implementacja przetwarzania analitycznego przy wykorzystaniu Oracle9i OLAP
29
& &) $
za
& &
cach w ramach
$
select rok, kwartal, kwota,
sum(kwota) over (partition by rok order by kwartal
range between unbounded preceding and current row)
as
kwota_kum
from sprzedaz_kwartalna
order by rok, kwartal;
ROK KWARTAL KWOTA
KWOTA_KUM
---------- ---------- ---------- ----------
2000 1 250000
250000
2000 2 100000
350000
2000 3 130000
480000
2000 4 70000
550000
2001 1 110000
110000
2001 2 130000
240000
2001 3 100000
340000
2001 4 120000
460000
!&&&)'BCCC
&)<.CCCC$
0&)')&
) )$ !'
&
o
)&&)$
select rok, kwartal, kwota,
avg(kwota) over (partition by rok order by kwartal
range between 3 preceding and current row)
as avg_3
from sprzedaz_kwartalna
order by rok, kwartal;
ROK KWARTAL KWOTA
AVG_3
---------- ---------- ---------- ----------
2000 1 250000
250000
2000 2 100000
175000
2000 3 130000
160000
2000 4 70000
137500
2001 1 110000
110000
2001 2 130000
120000
2001 3 100000
113333
2001 4 120000
115000
&)(
&5 ?7% ,>;24 ,>;24$ ?
wybranej kolumny odpowiednio z pierwszego i ostatniego rekordu okna obliczeniowego.
Podobnie do funkc
Zapytani
&&)14#''
' '
defi
%+14A%0 $ ? 1 (
rekordu poprzedzaj
' 4#
(&
rekor
$ & &) & 1
&$
Plik z chomika:
bomaszko
Inne pliki z tego folderu:
Matematyka stosowana - Bazy danych = slajdy.pdf
(514 KB)
Matematyka stosowana - Bazy danych = wyklad.pdf
(1077 KB)
plsem02b --1 Wprowadzenie 2 Operatory agregujące SQL.pdf
(71 KB)
SQL --Podstawy SQL - mechanikryki.pl.pdf
(340 KB)
sqlinfo --Ściąga z SQL - Uniwersytet Przyrodniczy we Wrocławiu.pdf
(226 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin