Td Advanced SQL
-
Upload
koteswararaob -
Category
Documents
-
view
233 -
download
0
Transcript of Td Advanced SQL
-
8/21/2019 Td Advanced SQL
1/88
TERADATAAdvanced SQL
-
8/21/2019 Td Advanced SQL
2/88
.SET Session Transaction ANSI
Change mode from BTET to ANSI
-
8/21/2019 Td Advanced SQL
3/88
.SET Session Transaction BTET
Change mode from ANSI to BTET
-
8/21/2019 Td Advanced SQL
4/88
Displa error if Command other than TD Standard.set session SQL!LA" ENTR#.set session SQL!LA" N$NE
-
8/21/2019 Td Advanced SQL
5/88
Window Aggregate Functions
A %indo% speci&cation is applied is called a %indo%
aggregate f'nction. (indo% aggregate f'nctions are'sed to perform $LA)* %hich permits analsis of datain the data %areho'se or data mart.Count Window + "eneration of total co'nts and s',+co'nts.
Sum Window + "eneration of totals and s',totals.Cumulative Sum ++ )ermits c'm'lative s'mmation ofa val'e over time or an dimension.Moving Average ++ )ermits comp'tation of a moving
average ,ased on a speci&ed %indo%.Moving Sum ++ )ermits calc'lation of a moving s'mover time ,ased on a speci&ed %indo%.Moving Diference ++ )ermits calc'lation of a movingdi-erence over time ,ased on a speci&ed %indo%.
Lie traditional aggregate f'nctions* %indo% aggregate f'nctionsoperate on gro'ps of ro%s and permit /'ali&cation and <ering of thegro'p res'lt. 0nlie aggregations* $LA) f'nctions ret'rn individ'al
-
8/21/2019 Td Advanced SQL
6/88
(indo% aggregate f'nctions prod'ce$LA) res'lts2
3 S',+co'nts3 !inal co'nts3 S',+totals
3 !inal totals3 C'm'lative S'ms3 4oving S'ms3 4oving Averages
3 4oving Di-erencesWindow unctions may be perormed on:5 Ta,les 6 )erm* Temp* Derived 75 8ie%s5 INSERT9SELECT pop'lations
-
8/21/2019 Td Advanced SQL
7/88
The C$0NT (indo% f'nction ma ,e 'sed to perform the follo%ingoperations2Co'nt the n'm,er of ro%s in a de&ned gro'p or in all gro'ps
A similar res'lt can ,e prod'ced 'sing the (IT: and (IT:...B#e;tensions to
Teradata SQL. The (IT:...B# f'nction is 'sed to prod'ce s',+totals6and
s',+co'nts7 over the detail data for a gro'p* as de&ned , the B#cla'se.Similarl* the (IT: f'nction is 'sed to provide grand totals 6andgrand co'nts7over the detail data for all ro%s.
The C$0NT (indo% f'nction is an ANSI+standard f'nction* %hereasthe(IT: and (IT:...B# f'nctions are TD standard.
The C$0NT (indo% f'nction also prod'ces tr'e relational o'tp't6'niform col'mns and ro%s7 %hereas (IT: and (IT:...B# do not.
-
8/21/2019 Td Advanced SQL
8/88
-
8/21/2019 Td Advanced SQL
9/88
SELECTename* sal* deptno*C$0NT6deptno7 $8ER 6 7 AS
Total=Co'nt!R$4 samples.emp (:ERE Deptno IN6>?*@?7$RDER B# @*>
-
8/21/2019 Td Advanced SQL
10/88
SELECTename* sal* deptno!R$4 samples.emp (:ERE Deptno IN
6>?*@?7(IT: C$0NT 6Deptno7 6TITLE Total=Co'nt7$RDER B# @*>
-
8/21/2019 Td Advanced SQL
11/88
SELECTename* sal* deptno*C$0NT6deptno7 $8ER 6)ARTITI$N B#
Deptno7AS Dept=Co'nt!R$4 samples.emp (:ERE Deptno IN6>?*@?7
-
8/21/2019 Td Advanced SQL
12/88
SELECTename* sal* deptno!R$4 samples.emp (:ERE Deptno IN 6>?*@?7
(IT: C$0NT6Deptno 7 6TITLE Total=Co'nt7 , deptno
-
8/21/2019 Td Advanced SQL
13/88
-
8/21/2019 Td Advanced SQL
14/88
SELECT empno* ename * sal*deptno* S046sal7 $8ER 6)ARTITI$N B# deptno7!R$4 samples.emp
-
8/21/2019 Td Advanced SQL
15/88
SELECT empno* ename* sal* deptno!R$4 samples.emp(IT: S046sal7 B# deptno
t t ,l l t,l
-
8/21/2019 Td Advanced SQL
16/88
create ta,le salest,l6storeid int * prodid char * sales
decimal6*77insert into salest,l val'es 6>??>*A*FGH.??7insert into salest,l val'es 6>??>*B*GF@H.??7insert into salest,l val'es 6>??>*A*F@H.??7
insert into salest,l val'es 6>??>*C*>FGH.??7insert into salest,l val'es 6>??>*A*F???.??7insert into salest,l val'es 6>??>*B*>??.??7
insert into salest,l val'es 6>??*A*FGH.??7
insert into salest,l val'es 6>??*B*FGH.??7insert into salest,l val'es 6>??*A*???.??7insert into salest,l val'es 6>??*C*FGH.??7insert into salest,l val'es 6>??*C*@???.??7
insert into salest,l val'es 6>??@*A*FGH.??7
insert into salest,l val'es 6>??@*A*FGH.??7
-
8/21/2019 Td Advanced SQL
17/88
SELECT storeid * prodid * sales* S046sales7 $8ER 6)ARTITI$N B# storeid7!R$4 samples.salest,l $RDER B# >*
-
8/21/2019 Td Advanced SQL
18/88
SELECT storeid * prodid * sales!R$4 samples.salest,l(IT: S046sales7 B# storeid $RDER B#
>*
-
8/21/2019 Td Advanced SQL
19/88
SELECT storeid * prodid* sales%ith S046sales7 !R$4samples.salest,l
$RDER B# >*
-
8/21/2019 Td Advanced SQL
20/88
SELECT storeid * prodid* sales* S046sales7 $8ER 6 7
!R$4 samples.salest,l $RDER B# >*
-
8/21/2019 Td Advanced SQL
21/88
Teradata !tension
Alternative
An alternative Teradata shortc'tJ e;tension is the CS04
f'nction %hich can prod'ce the same res'lts* ho%everdoes not compl %ith ANSI standards.
CS04 6 colname* sort=item>* sort=item*
< 7Res'lts are sorted in ascending order ,ased on thespeci&ed sort list col'mns. Descending sorts of an ofthe sort list col'mns ma ,e speci&ed , 'sing theDESC Q'ali&er.
-
8/21/2019 Td Advanced SQL
22/88
insert into dail=sales val'es 6 >?*>+?+?H*>??.??7insert into dail=sales val'es 6 >?*>+?+?*???.??7
insert into dail=sales val'es 6 ?*>+?+?H*>??.??7insert into dail=sales val'es 6 >?*>+?+?F*?.??7insert into dail=sales val'es 6 @?*>+?+?H*@??.??7
CREATE TABLE dail=sales6itemid INTE"ER*
salesdate DATE !$R4AT ##9449DD*sales DECI4AL6*77 )RI4AR# INDE 6 itemid 7
Th l ti f ti t
-
8/21/2019 Td Advanced SQL
23/88
The c'm'lative s'm f'nction comp'tes ar'nning or c'm'lative total of a col'mnJs val'e
SELECT salesdate* sales*S046sales7 $8ER 6$RDER B# salesdateR$(S 0NB$0NDED )RECEDIN"7AS MCs'mM !R$4 samples.dail=sales (:ERE salesdate BET(EEN DATE >+?>+?> AND DATE >+>+@>
-
8/21/2019 Td Advanced SQL
24/88
-- Query with out " ROWS UNBOUNDED PRECEDING "
SELECT salesdate* sales* S046sales7 $8ER 6order ,
salesdate 7AS MCs'mM !R$4 samples.dail=sales(:ERE salesdateBET(EEN DATE >+?>+?> AND DATE >+>+@>
-
8/21/2019 Td Advanced SQL
25/88
SELECT salesdate* sales * ETRACT64$NT: !R$4 salesdate7 AS 4on*S046sales7 $8ER 6)ARTITI$N B# 4on $RDER B#
salesdateR$(S 0NB$0NDED )RECEDIN"7 AS MCs'mM!R$4 samples.dail=sales (:ERE itemid >?AND ETRACT6 #EAR !R$4 salesdate7 > AND
4on in 6>*7
-
8/21/2019 Td Advanced SQL
26/88
SELECT salesdate* itemid* sales* 4S046sales* @* salesdate7 AS M4s'mM!R$4 samples.dail=sales(:ERE itemid >?AND ETRACT6#EAR !R$4 salesdate7 >AND ETRACT64$NT: !R$4 salesdate7 IN
6>*7
-
8/21/2019 Td Advanced SQL
27/88
SELECT salesdate * itemid * sales* S046sales7 $8ER 6$RDER B# salesdateR$(S )RECEDIN"7 AS M4s'mM
!R$4 samples.dail=sales(:ERE itemid >?AND ETRACT6#EAR !R$4 salesdate7 >AND ETRACT64$NT: !R$4 salesdate7 IN6>*7
-
8/21/2019 Td Advanced SQL
28/88
SELECT salesdate* itemid* sales*ETRACT64$NT: !R$4 salesdate7 as mon*4A8"6sales* * salesdate7 AS M4AvgM!R$4 samples.dail=sales (:ERE itemid >?
AND ETRACT6#EAR !R$4 salesdate7>AND ETRACT64$NT: !R$4 salesdate7 IN6>*7
E;ample2 )rod'ce a listing sho%ing a %eel movingaverage of sales reven'e for the &rst t%o months of>. 0se a %idth of G. 0se the Teradata 4A8" f'nction
-
8/21/2019 Td Advanced SQL
29/88
SELECT salesdate* itemid* sales
* A8"6sales7 $8ER 6$RDER B# salesdateR$(S F )RECEDIN"7 AS M4AvgM!R$4 samples.dail=sales (:ERE itemid >?AND ETRACT6#EAR !R$4 salesdate7 >AND ETRACT64$NT: !R$4 salesdate7 IN 6>*7
-
8/21/2019 Td Advanced SQL
30/88
SELECT salesdate*CAST6itemid AS B#TEINT7 6!$R4AT 7 AS MitemidM*sales*CS046sales* salesdate7 AS MCS04M
*4S046sales* @* salesdate7 AS M4S04M*4DI!!6sales* @* salesdate7 AS M4DI!!M*4A8"6sales* @* salesdate7 AS M4A8"M!R$4 samples.dail=sales (:ERE salesdate BET(EEN ?>?>AND >@>
-
8/21/2019 Td Advanced SQL
31/88
$rdered Analtic
!'nction Tpes
-
8/21/2019 Td Advanced SQL
32/88
SELECT storeid* prodid* sales*S046sales7 $8ER 6$RDER B# sales
DESC7!R$4 salest,l
SELECT storeid* prodid* sales*
S046sales7 $8ER 6)ARTITI$N B# prodid$RDER B# sales DESC7!R$4 salest,l
SELECT storeid* prodid* sales*S046sales7 $8ER 6)ARTITI$N B# prodid$RDER B# sales DESC7 AS )rodS'm!R$4 salest,l Q0ALI!# )rodS'm O
>??
-
8/21/2019 Td Advanced SQL
33/88
SELECT storeid* prodid* sales*4IN6sales7$8ER 6)ARTITI$N B#storeid $RDER B# sales DESC7!R$4 salest,l
SELECT storeid* prodid* sales*
4A6sales7$8ER 6)ARTITI$N B#storeid$RDER B# sales DESC7!R$4 salest,l
-
8/21/2019 Td Advanced SQL
34/88
anced N'meric !ormatting $pti
-
8/21/2019 Td Advanced SQL
35/88
-
8/21/2019 Td Advanced SQL
36/88
-
8/21/2019 Td Advanced SQL
37/88
Radi; and "ro'p Separators The follo%ing /'er 'ses SD!6 Speci&cation for Data formating 7conventions tode&ne a format for the o'tp't. These conventions
m'st ,e de&ned in the SD! &le 'sing the tdlocaldef'tilit.
SELECT salar=amo'nt 6!$R4AT "+6>?7D677!R$4 emploee(:ERE emploee=n'm,er K?>
salar=amo'nt+++++++++++++>??*???.??
"+ Represents the "R$0) SE)ARAT$R as de&ned in the SD!. In 0.S.applications*
this is 's'all a comma 6*7 character. It is'sed to separate digits ofthe %hole n'm,erinto gro'ps of three or less. It m'st al%as appear as the &rstcharacter in a !$R4ATstring. D+ Represents the RADI sm,ol as de&ned in the SD!. Radi;
separates the %hole n'm,er from the fractional part. In 0.S.
Note2SD! sm,ols ma not ,e mi;ed in the same !$R4AT string %ith
e;plicit !$R4ATdesignations. !or e;ample* o' cannot have D and an e;plicit . in
-
8/21/2019 Td Advanced SQL
38/88
Integers* !ractions and Pero+s'ppression The same o'tp't ma ,e achieved 'sing thefollo%ing formatting e;ample2SELECT salar=amo'nt 6!$R4AT "+P6I7D6!77!R$4 emploee(:ERE emploee=n'm,er K?>salar=amo'nt+++++++++++++>??*???.??!+ Represents the n'm,er ofcharacters
needed to displa the fraction portion of n'meric data. In the case of a DEC6>?*7 datatpe* 6!7 is e/'ivalent to 67.I + Represents the n'm,er of charactersneeded to displa the INTE"ER portion of
n'meric data. In the case of a DEC6>?*7 datatpe* I is e/'ivalent to 6K7.P+ Represents ero+s'ppressed decimal digit.P6I7 represents a ero+s'ppressedinteger. !loating ero+s'ppression ma also
,e speci&ed 'sing m'ltiple Ps 6PPPPPP7.
-
8/21/2019 Td Advanced SQL
39/88
!i;ed C'rrenc $ptions The follo%ing e;amplesdemonstrate the a,ilit to
c'stomie formats to accomdate a variet ofinternational conventions for representing c'rrencamo'nts. !i;ed C'rrencS"CT salary #F$%MAT &'"(#)*D(#F*&*F%$M retail+employee
W,% p-one./(0123(4345+++++++++++++++++++++??*>??*???.??
L+ Represents the C0RRENC# S#4B$L as de&nedin the SD!. In 0.S. applications* this is 's'all
the dollar 67 sm,ol. A single L indicates a&;ed 6i.e. non+oating7c'rrenc sm,ol.S"CT salary #F$%MAT &'6#)*D(#F*"&*
F%$M retail+employeeW,% p-one./(0123(4345
-
8/21/2019 Td Advanced SQL
40/88
-
8/21/2019 Td Advanced SQL
41/88
-
8/21/2019 Td Advanced SQL
42/88
-
8/21/2019 Td Advanced SQL
43/88
-
8/21/2019 Td Advanced SQL
44/88
-
8/21/2019 Td Advanced SQL
45/88
-
8/21/2019 Td Advanced SQL
46/88
-
8/21/2019 Td Advanced SQL
47/88
-
8/21/2019 Td Advanced SQL
48/88
-
8/21/2019 Td Advanced SQL
49/88
-
8/21/2019 Td Advanced SQL
50/88
-
8/21/2019 Td Advanced SQL
51/88
-
8/21/2019 Td Advanced SQL
52/88
-
8/21/2019 Td Advanced SQL
53/88
Timestamp
-
8/21/2019 Td Advanced SQL
54/88
-
8/21/2019 Td Advanced SQL
55/88
-
8/21/2019 Td Advanced SQL
56/88
-
8/21/2019 Td Advanced SQL
57/88
-
8/21/2019 Td Advanced SQL
58/88
-
8/21/2019 Td Advanced SQL
59/88
-
8/21/2019 Td Advanced SQL
60/88
-
8/21/2019 Td Advanced SQL
61/88
-
8/21/2019 Td Advanced SQL
62/88
-
8/21/2019 Td Advanced SQL
63/88
-
8/21/2019 Td Advanced SQL
64/88
-
8/21/2019 Td Advanced SQL
65/88
S', Q'eries
7sually a sub9uery s-ould return only
-
8/21/2019 Td Advanced SQL
66/88
7sually8 a sub9uery s-ould return onlyone record8 but sometimes it can alsoreturn multiple records w-en used wit-
operators lie );8 ;$T ); in t-e w-ereclause+S"CT mpno8 enameF%$M mp W,% deptno );#10840*5
S"CT mpno8 enameF%$M mp W,%
-
8/21/2019 Td Advanced SQL
67/88
Correlated Sub9uery
-
8/21/2019 Td Advanced SQL
68/88
Correlated Sub9ueryThe inner /'er and the o'ter /'er are
interdependent. !or ever ro% processed, the inner /'er* the o'ter /'er isprocessed as %ell. The inner /'er dependson the o'ter /'er ,efore it can ,eprocessed.
S"CT p+product=name F%$Mproduct p
W,% p+product=id . #S"CTo+product=id F%$M order=items oW,% o+product=id .
p+product id*5
-
8/21/2019 Td Advanced SQL
69/88
S"CT ename8deptno 8salF%$M emp
W,% sal . #S"CT MA> #sal*F%$M emp e W,% e+deptno .e+deptno*5
-
8/21/2019 Td Advanced SQL
70/88
S"CT ename 8sal F%$M empeW,% sal ? #S"CT A@' #sal*
F%$M emp e W,% e+deptno.e+deptno*5
-
8/21/2019 Td Advanced SQL
71/88
S"CT d+mgr ASmgr=emp=8d+deptno8e+salF%$M emp d );;% B$); emp e
$; e+empno .d+mgrW,% e+sal . #S"CT MA> #sal*F%$M emp e W,% d+deptno.e+deptno*5
-
8/21/2019 Td Advanced SQL
72/88
EIST$perator
-
8/21/2019 Td Advanced SQL
73/88
S"CT &T-ere are employees&AS Answer W,% not >)STS6S"CT F%$M emp W,%deptno . 0*5
S"CT &T-ere are employees&AS Answer W,% >)STS
6S"CT F%$M emp W,%deptno . 0*5
-
8/21/2019 Td Advanced SQL
74/88
-
8/21/2019 Td Advanced SQL
75/88
-
8/21/2019 Td Advanced SQL
76/88
-
8/21/2019 Td Advanced SQL
77/88
-
8/21/2019 Td Advanced SQL
78/88
-
8/21/2019 Td Advanced SQL
79/88
-
8/21/2019 Td Advanced SQL
80/88
-
8/21/2019 Td Advanced SQL
81/88
-
8/21/2019 Td Advanced SQL
82/88
-
8/21/2019 Td Advanced SQL
83/88
Raning
-
8/21/2019 Td Advanced SQL
84/88
-
8/21/2019 Td Advanced SQL
85/88
-
8/21/2019 Td Advanced SQL
86/88
-
8/21/2019 Td Advanced SQL
87/88
-
8/21/2019 Td Advanced SQL
88/88