RING 70 23 26 50 eller send en mail og få uforpligtende informationer om, hvor kurset udbydes, datoer, priser og en status på, om kurset har deltagere nok til at det bliver gennemført.
Udbydes kurset ikke i oversigten til højre, så kontakt os endelig for ny dato.
Kurset giver viden og færdigheder til at bruge avanceret SQL-kode til at returnere statistiske data – til fx rapporter eller befolkning af Data Warehouses
Dette er et avanceret SQL-kursus !
Kursets indhold ligger inden for SQL-standarden og kan derfor benyttes i f.eks. Oracle, IBM DB2, Microsoft SQL Server, MySQL, MariaDB, PostgreSQL og Teradata.
Kurset udvider kursistens repertoire af avancerede SQL-teknikker, så han/hun får flere "tangenter at spille på" og derved kan være mere kreativ i omsætningen af strategien til SQL-kode! Dette er forudsætningen for at kunne performance tune SQL-statements.
Kurset starter med klassiske mængdeoperationer -- hvor der fokuseres på strategier for løsning vha. korrelerede subqueries. Gode, gedigne teknikker, som ligger i kernen af tankegangen i SQL.
Dernæst følger SQL:1999-udvidelserne af GROUP BY med GROUPING SETS, CUBE og ROLLUP. Disse udvidelser retter sig mod statistiske rapporter og Data Warehousing. Korrekt anvendt kan dette give bedre performance.
Correlated DELETE og UPDATE kan benyttes til ændringer af data i én tabel, med udgangspunkt i data fra en anden tabel. Kurset tager udgangspunkt i en Upsert -- for dernæst at introducere den vigtige MERGE-kommando, som kom i SQL:2003 og blev udvidet i SQL:2008-standarden. Benyttes ofte i Data Warehousing.
Kurset kommer kort omkring rekursive CTE -- defineret til hierarkiske forespørgsler. De finder også anvendelse i at kunne erstatte en iterativ forespørgsel ( f.eks. CURSOR eller WHILE loop ). Derved tilbydes performance gennem et view eller inline table-valued function.
Window functions ( Analytic function eller OLAP function ) blev introduceret i SQL:1999-standarden og er en radikal anderledes måde at tænke mængder på. De løser en stribe klassiske problemstillinger på en elegant og let læselig måde -- tilmed ofte med god performance.
Window functions gennemgås detaljeret med mange øvelser og eksempler og er hovedemnet på kurset.
Kurset viser måder at returnere simple statistiske deskriptorer -- f.eks. median, typetal og gennemsnit.
Til sidst introduceres SQL-forespørgsler på intervaller samt betingelsen for overlappende intervaller. Resultatsæt fra beregninger på intervaller, herunder overlappende intervaller, intervaller tilskrevet en værdi. Dette indgår bl.a. i økonomisk SQL.
TSU-245 - SQL og Dataanalyse
SQL Programmering Videregående
Mængdeoperationer
SQL hviler på mængdelære. Blandt SQL-sprogets berømte attraktioner hører dets elegante håndtering af mængdeoperationer, som kan løse avancerede rapportønsker. Pointen er, at genkendes mængdeoperationen ud fra rapportønsket, har man en god retningsgiver for en mulig strategi til at skrive en passende SQL-kode. På kurset præsenteres klassiske mængdeoperationer -- både grafisk i Venn-diagrammer samt smukke, korrelerede HAVING- og/eller EXISTS-konstruktioner til at løse dem. SQL er bygget til at kunne gøre dette med god performance.
Disjunkte mængder
Tom fællesmængde.
Hvilke købende Kunder X har ikke købt nogen af de Varer, som Kunde A har købt ?
Hvilke Kunder X har kun købt noget i de år, som Kunde A ikke har købt i ?
Supermængde
Hvilke Kunder X har mindst købt de samme Varer som Kunde A ?
Delmængde
Hvilke Kunder X har købt blandt Varer købt af Kunde A -- hvor Kunde A har købt alle Varer, som Kunde X har købt ?
Identiske mængder
Hvilke Kunder X har købt præcis de samme Varer som Kunde A ?
Grupperede data
SQL:1999-standardens udvidelse af GROUP BY med GROUPING SETS, CUBE og ROLLUP. Implementeret til håndtering af data i statistiske rapporter og Data Warehouses. Et stærkt supplement i rapportering, idet man specifikt udvælger niveauer at gruppere data i. Kan derfor give en performance-gevinst fremfor at gruppere på alle niveauer og samle aggregater senere
MERGE-kommandoen
Defineret i SQL:2003 og SQL:2008-standarden og svarer til en upsert ( update + insert ). Merge indgår ofte i befolkning af tabeller i Data Warehouses. Kurset præsenterer mulighederne, herunder nogle af udvidelserne til standarden, som enkelte database-producenter har tilføjet.
Med udgangspunkt i upsert vha. correlated UPDATE hhv. INSERT præsenteres merge-kommandoen og dens anvendelser.
Rekursive CTE
CTE blev introduceret i SQL:1999. Herunder valgte man at placere rekursive forespørgsler i CTE syntaxen. Kurset introducerer kort disse konstruktioner, fordi de kan anvendes i views og inline table-valued functions og derved give performance! Sammenligning med Oracle syntax
Window-funktioner
Definition. Hvad er pointen? Hvori består ”vinduet”? Gennemgås detaljeret med fokus på opbygning samt relation til strategier for rapportering. Mange eksempler.
Typer af Window Functions:
Aggregate
Ranking
Distribution
Offset
Hver af disse typer præsenteres med eksempler på anvendelse.
OVER-klausulen og dens elementer:
Partitioning
Ordering
Framing
Hvert af disse elementer gennemgås grundigt med eksempler på anvendelse i forespørgsler.
Sekvenser af key values:
Tildele unikke, sekventielle værdier, f.eks. surrogate keys i et Data Warehouse.
Slette duplikat-rækker
Top-N pr. gruppering -- f.eks. angiv de tre seneste afgivne ordrer pr. kunde.
Window Functions til at returnere nogle statistiske deskriptorer:
Typetal
Median
Løbende aggregater -- ”running values”.
Angiv løbende 7-døgns gennemsnitlige indbetaling pr. kunde
Ranking functions
ROW_NUMBER() , RANK() og DENSE_RANK()
Der fokuseres specielt på denne type Window Function -- herunder hvilke typer rapportønsker eller Data Warehouse-forespørgsler den kan løse
Intervaller
Intervaller optræder flere steder:
Et lån har en given restgæld og rente i et givet tidsrum.
En medarbejder udlånes til et projekt i et givet tidsrum.
En bil har en leasingperiode.
En mobilsamtale har en varighed.
Overlappende intervaller
Maximale antal overlappende intervaller.
Hvad var det maximale antal samtidige biler, der var udlejet.
Hvis et interval er tilskrevet en værdi -- hvad var det maximale udlån?
Huller i intervaller
Hvilke intervaller af løbenumre er ikke i brug?
Angiv sammenhængende intervaller af løbenumre, som er i brug