Databázové systémy II Přednáška č. IX Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky

Slides:



Advertisements
Podobné prezentace
Statistika.
Advertisements

Statistické funkce v tabulkovém kalkulátoru Excel MS
KIV/ZIS Cvičení 6 SQL - SELECT.
MS ACCESS - DOTAZY DATABÁZOVÉ SYSTÉMY.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Databázové systémy SQL Výběr dat.
Fakulta elektrotechniky a informatiky
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Databáze Jiří Kalousek.
MS PowerPoint Prezentační manažer Kapitola 13.1 (Schránka a operace se schránkou)
KVANTILY OA a VOŠ Příbram.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Databázové systémy 2 Cvičení č. 7 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
DalšíPředchozíTÉMA: M. K a d l e c o v á M. K a d l e c o v á.
Fakulta elektrotechniky a informatiky
Informatika pro ekonomy II přednáška 10
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
JavaScript Podmínky, cykly a pole.
Fakulta elektrotechniky a informatiky
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Zkouška – 08:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK3(p_oddeleni_id_from NUMBER, p_oddeleni_id_to NUMBER,
WinBase tiskové sestavy Návod Postupy Příklady.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Procedura Vytvořte proceduru PROCEDURE ZK_ZAM_HISTOGRAM(P_ROK_OD IN NUMBER, P_ROK_DO IN NUMBER)
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK4(p_oddeleni_id_from NUMBER, p_oddeleni_id_to NUMBER)
Databázové systémy 2 Zkouška – 12:00. Příklad I - Funkce Vytvořte funkci ZK_TRP_TREND(P_ID_TRPASLIKA IN NUMBER, P_DATUM_OD IN VARCHAR2, P_DATUM_DO.
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové modelování
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
2OP483 Manažerská informatika 3Access - BankaSnímek 1 2OP483 Manažerská informatika 3 Microsoft Office Access 2007 Dotazy v databázi Banka
Databázové systémy Informatika pro ekonomy, př. 18.
Databázové systémy SQL Výběr dat.
 Agregační funkce  Agregační funkce jsou to funkce, které nějakým způsobem zpracují více hodnot a jako výsledek vrátí hodnotu jednu COUNT()  Funkce.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Procedura Vytvořte proceduru PROCEDURE ZK_ZAM_HISTOGRAM(P_ROK_OD IN NUMBER, P_ROK_DO IN NUMBER)
Databázové systémy 2 Cvičení IV Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
Administrace Oracle Paralelní zpracování.
Databázové systémy 1 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
Databáze MS ACCESS 2010.
Filtrování záznamů Filtr podle výběru Filtr podle formuláře Rozšířený filtr Symboly, výrazy Dotazy.
Úvod do databází zkrácená verze.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
KIV/ZD cvičení 5 Tomáš Potužák.
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
ZAL – 3. cvičení 2016.
1. ročník oboru Mechanik opravář motorových vozidel
Informatika pro ekonomy přednáška 8
Spojitá a kategoriální data Základní popisné statistiky
[ START WITH podmínka ] CONNECT BY podmínka
Optimalizace SQL dotazů
Analýza kardinálních proměnných
Transkript prezentace:

Databázové systémy II Přednáška č. IX Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky

Osnova přednášky Analytické funkce IDAS - Přednáška IX

Analytické funkce DBMS Oracle obsahuje novou řadu analytických funkcí, jenž dovolují spočítat následující typy početních operací: – Žebříčky a percentily (Rankings and percentiles) – Výpočty v „pohyblivých oknech“ (Moving window calculations) – Analýza předchůdce/následníka (Lag/lead analysis) – Analýza prvního/posledního (First/last analysis) – Lineární regrese (Linear regression statistics) Nové analytické funkce jsou optimalizovány na výkon. – Analytické funkce podporují paralelizaci. – Zpracování dotazů je pak efektivnější, dotazy jednoduší a celý systém je lépe škálovatelný. IDAS - Přednáška IX

Analytické funkce Jaký mají nové analytické funkce přínos pro uživatele? – Klasickým problémem agregačních funkcí (používaných v kombinaci s GROUP BY je ztráta detailu). – Typickým příkladem může být vypsání všech zaměstnanců spolu s jejich průměrnou mzdou (např. na oddělení kde pracuji, …). – Umožňují definovat velmi specifické výpočty. Např.: Sumu složenou s okolních hodnot aktuální hodnoty. Analýza top-n výsledků. Výběr nejvyšší a nejnižší hodnoty ze specifikované skupiny. IDAS - Přednáška IX

Analytické funkce Motivační příklad: – Chci vypsat všechny zaměstnance ve firmě a ke každému uvést: Průměrnou mzdu oddělení ve kterém pracuje. Průměrnou mzdu pozice na které pracuje. Průměrnou mzdu země ve které zaměstnanec pracuje. Rozdíl mzdy zaměstnance se mzdou třetího nejlépe placeného zaměstnance firmy. – S klasickými agregačními funkcemi (GROUP BY) je napsání odpovídajícího dotazu velmi komplikované. – V podstatě to znamená, k základnímu výpisu (1 dotaz) připojit výsledky čtyř sub-dotazů. Ke zodpovězení dotazu je nutné napsat 5 dotazů. – Nejen že je to komplikované (výsledný kód je nepřehledný, náchylný na chyby), ale celkově je toto řešení i nevýkonné. IDAS - Přednáška IX

Analytické funkce Předchozí příklad řešený analytickými funkcemi IDAS - Přednáška IX

Analytické funkce Obecná syntaxe: query_partition_clause – Rozděluje výslednou sadu dat do oddílů. Použitá analytická funkce se pak aplikuje stejně na všechny oddíly. Funkce nikdy nepřesáhne hrabice oddílu. Při vynechání se funkce aplikuje na celou sadu dat. order_by_clause – Definuje pořadí uvnitř jednotlivých oddílů. Využíva se především u funkcí, jenž jsou citlivé na pořadí analyzovaných dat. Funkce RANK, FIRST_VALUE, … windowing_clause – Umožňuje jemnější specifikaci toho, s jakými řádky analytická funkce bude pracovat (vždy ale v rámci zvoleného oddílu a pořadí). – Umožňuje např. specifikovat, že funkce se aplikuje na aktuální řádek, na řádek přímo předcházející a přímo následující. IDAS - Přednáška IX

Zpracování analytických dotazů Rozdělení výsledků do oddílů/oblastí (PARTITIONS) – Analytické funkce umožňují rozdělit výsledky dotazu na skupiny řádků, nazvané oddíly (partitions). (neplést a nespojovat s pojmem partition table). – Oddíly jsou vytvořeny na základě výrazů v PARTITION BY klauzuli. – Množina výsledků může být rozdělena na mnoho oddílů uchovávajících jen pár řádků, do několika větších oddílů či mohou zůstat jen v jednom oddílu. IDAS - Přednáška IX

Zpracování analytických dotazů Okno (Window) – Pro každý řádek v oddílu, může uživatel definovat „posuvné okénko“. – Toto okénko určuje rozsah řádků (před/za aktuálním), které budou složit pro výpočet hodnot na řádku aktuálním. – Každé okénko má svůj počáteční řádek a svůj konečný řádek. – Velikost okénka může být založena na konkrétní fyzické hodnotě (počet řádků) či hodnotě logické (čas). – Příkladem může být funkce kumulativního součtu. Začátek okénka se pevně definuje na začátek oddílu, konečný bod se bude pohybovat s aktuálním záznamem od začátku oddílu k jeho konci. – Okénko může být stejně velké jako celý oddíl. Může též mít velikost jednoho řádku oddílu. IDAS - Přednáška IX

Zpracování analytických dotazů Aktuální řádek (Current row) – Každý výpočet provedený analytickou funkcí je založen na hodnotě aktuálního řádku oddílu. – Aktuální řádek slouží jako referenční bod ovlivňující počáteční a koncový bod okénka. – Okénku může být například definováno tak, že obsahuje aktuální záznam, šest záznamů které mu předcházejí a šest záznamů které se nacházejí v pořadí za ním. IDAS - Přednáška IX

Zpracování analytických dotazů IDAS - Přednáška IX

Zpracování analytických dotazů Nové analytické funkce přidávají do zpracovávacího řetězce dotaz řadu nových elementů. Diagram zpracování dotazů s novým analytickými funkcemi: Pořadí zpracování 1.Nejprve jsou provedeny klasická spojení, filtrovaní, seskupení a filtrování seskupených informací. 2.Výsledek z prvního kroku je podroben zpracovaní analytickými funkcemi. 3.Závěrečné seřazení. IDAS - Přednáška IX

Funkce pro určení pořadí Určují pořadí dané hodnoty ve specifikované množině výsledků, která je seřazena podle specifického pořadí. Dostupné funkce: – RANK – DENSE_RANK – CUME_DIST – PERCENT_RANK – NTILE – ROW_NUMBER IDAS - Přednáška IX

RANK Funkce RANK umožní vypočítat pořadí daného řádků ve specifikované skupině, na základě hodnoty ve vybraném sloupci. – Pořadí obchodů dle příjmů v jednotlivých státech. Syntaxe: Funkce RANK vytváří tzv. nevyužitá místa. – Tři obchody se v prodejích umístili na druhém místě, další obchod v pořadí je pátý. IDAS - Přednáška IX

RANK Základní vlastnosti funkce RANK: – Výchozím typem řazení záznamů je řazení sestupné. – PARTITION BY výraz může data rozdělit do skupin, ve kterých bude funkce RANK individuálně vypočítávat pořadí. – De facto PARTITION BY definuje hranice, na kterých dojde k „resetování“ pořadí. – ORDER BY klauzule funkce RANK specifikuje veličinu (veličiny) podle které jsou záznamy ve skupinách seřazeny a následně „ohodnoceny“. – Klauzule NULLS FIRST | NULLS LAST klauzule ORDER BY říkají, kam se mají umístit záznamy obsahující NULL hodnoty. – Pokud jsou NULLS FIRST | NULLS LAST vynechány, záleží řazení NULL hodnot na typu řazení (ASC|DESC). – NULL hodnota je považována za větší než jakákoliv jiná definovaná hodnota. IDAS - Přednáška IX

RANK IDAS - Přednáška IX

RANK a PARTITION BY IDAS - Přednáška IX

RANK a DENSE_RANK RANK vynechává pořadí, pokud se na stejné pozici objeví více záznamů. DENSE_RANK pořadí nevynechává. IDAS - Přednáška IX

Funkce PERCENT_RANK Výpočet percentilu. – Percentil - vyjadřuje postavení daného prvku vůči prvkům ostatním. Jinak vyjádřeno říká, kolik procent záznamů následuje za aktuálním prvkem. (95. percentil říká, že 95% prvků je za aktuálním prvkem a jen 5% prvků je před aktuálním prvkem). Matematicky vyjádřeno: Syntaxe: Funkce vrací hodnoty v rozmezí IDAS - Přednáška IX

Funkce NTILE Rozdělení řádků oddílů do přibližně stejně velkých skupin. – Ze statistického pohledu jde o rozdělení výběru na kvantily - medián, kvartil, kvintil, decil, percentil. Funkce přímá jako argument číslo, které definuje počet skupin, do kterých má být oddíl rozdělen. Výstupem funkce je číslo reprezentující příslušnost daného řádku ke skupině. Syntaxe: IDAS - Přednáška IX

Funkce NTILE IDAS - Přednáška IX

Funkce NTILE Pokud nelze řádky rozdělit rovnoměrně (beze zbytku), pak probíhá zvýšení kapacity prvních skupin. – O jedničku je zvětšena kapacita n prvních skupin, kde n je rovno velikosti zbytku. – Příklad: 103 řádků rozdělit do 5 skupin (zbytek bude 3). První skupina bude mít 21 řádků, 2. 21, 3. 21, 4. a 5. budou mít po dvaceti řádkách. Pozor na řazení hodnot podle položek, které nejsou primární klíče. – Stejné hodnoty se pak mohou objevovat v různých skupinách. Pro zajištění deterministického chování je nutno použit sloupce, jenž obsahuje unikátní hodnoty (nejlépe PK). IDAS - Přednáška IX

Funkce ROW_NUMBER Umožňuje přiřadit každému řádku v oddílu unikátní číslo (sekvenčně přiřazované od 1, v závislosti na ORDER BY klauzuli). Syntaxe: Opět pozor na řazení dle neunikátních sloupců. Řádky se shodnými hodnotami ve sloupcích řazení mohou pokážde obdržet jinou hodnotu funkce ROW_NUMBER. IDAS - Přednáška IX

Funkce ROW_NUMBER IDAS - Přednáška IX

Windowing Tzv. „windowing functions“ se vyžívají při výpočtech kumulativních, pohyblivých a centrických agregací. Základním principem těchto funkcí je, že výsledná hodnota nezáleží jen na aktuální hodnotě daného řádku, ale je ovlivňována navíc i okolními řádky, které spadají do tzv. okna. Windowing je využitelné se všemi klasickými funkcemi (SUM, AVG, COUNT, MAX, MIN, …). Mohou se vyskytnout pouze v SELECT a ORDER BY klauzuli dotazu. Tyto funkce navíc zahrnují funkci FIRST_VALUE, která vrací první hodnotu okna, a funkci LAST_VALUE, obsahující poslední hodnotu okna. Tyto funkce umožňují efektivně zpřístupňovat více řádků najednou bez použití self-join. IDAS - Přednáška IX

Windowing IDAS - Přednáška IX

Windowing - logický offset IDAS - Přednáška IX

Windowing - logický offset IDAS - Přednáška IX

Windowing - centrické agr. funkce Dané okno je definováno tak, že aktuální řádek je středem tohoto okna. IDAS - Přednáška IX

Windowing - centrické agr. funkce Okno je definováno na tři dny (včerejšek, dnešek, zítřek). – Daný průměr se tedy počítá ze tří dní. Pozor na řádky na krajích okna, zde se počítá průměr jen ze dvou dní. – V případě prvního řádku - dnešek, zítřek. – V případě posledního řádku - včerejšek, dnešek. IDAS - Přednáška IX

Windowing a přítomnost duplicit Uvažme následující SQL příkaz a jeho výstup: IDAS - Přednáška IX

Windowing a přítomnost duplicit Tento výsledek je způsoben použitím klíčového slova RANGE. Při použití RANGE může dané okno potencionálně držet řádků pro každou hodnotu z rozsahu. IDAS - Přednáška IX

Proměnná velikost okna V určitých situací je vhodné, aby se velikost okna přizpůsobila specifické hodnotě v daném řádku. IDAS - Přednáška IX Funkce fn může například vracet: Hodnotu 4, když je t_timekey pracovním dnem. Jinak vrací 2.

Reporting/Reportovací funkce Reportovací agregační funkce mají stejné vlastnosti jako jejich klasické protějšky (SUM, AVG, …) – Není u nich nutné využívat klauzuli GROUP BY. – Jejich výsledek je uveden v každém řádku daného oddílu. Typická syntaxe: IDAS - Přednáška IX Význam o omezení: * je povoleno jen u COUNT(*) DISTINCT je povolen, jen když je podporován příslušnou funkcí. PARTITION BY klauzule definuje skupiny, v rámci kterých „okenní“ funkce provedou výpočty. Vynechání klauzule = všechny řádky.

Reporting/Reportovací funkce Reportovací funkce se mohou objevit pouze v SELECT klauzuli nebo v ORDER BY klauzuli. Hlavní výhodou těchto funkcí je schopnost vícenásobného průchodu dat v rámci jednoho dotazovacího bloku. – Zvýšení rychlosti provádění dotazů. – Není nutné využívat spojení mezi různými dotazovacími bloky. IDAS - Přednáška IX

Reporting/Reportovací funkce Sub-dotaz vrátí následující výsledky: IDAS - Přednáška IX

Reporting/Reportovací funkce Konečný výsledek dotazu: IDAS - Přednáška IX

Funkce RAITO_TO_REPORT Funkce vypočítá poměr mezi zadanou hodnotou a sumou hodnot ve skupině. Syntaxe: Význam: – expr - libovolný výraz – PARTITION BY - definuje skupinu, pro kterou je RATIO_TO_REPORT počítano. IDAS - Přednáška IX

Funkce RATIO_TO_REPORT IDAS - Přednáška IX

Funkce LAG/LEAD Užitečné funkce pro porovnávání aktuální hodnoty s hodnotou z řádku o n pozic před/za aktuálním řádku. Přestože funkce provádí přístup k více řádkům tabulky současně, není nutné využít self-join. – Vyšší výkon dotazů využívající LAG/LEAD. LAG poskytuje přístup na řádek o n pozic před aktuálním záznamem. LEAD naopak k záznamům za akt. záznamem. Syntaxe: IDAS - Přednáška IX

Funkce LAG/LEAD Význam jednotlivých parametrů LAG/LEAD: – offset - volitelný, výchozí hodnota 1, definuje o kolik pozic je hledaná hodnota posunuta vůči aktuální. – default - tato hodnota je vrácena, pokud je offset mimo platné hranice tabulky nebo definovaného oddílu. – Při specifikaci IGNORE NULLS bude všechny NULL hodnoty ignorovány a nebudou se započítávat do offsetu. IDAS - Přednáška IX

Funkce LAG/LEAD IDAS - Přednáška IX

Funkce FIRST_VALUE a LAST_VALUE Výběr prvního řádku (FIRST_VALUE) nebo posledního řádku (LAST_VALUE) z definovaného okna. – Příklad: Porovnaní každodenních prodejů s prodeji z prvního dne definované periody. Syntaxe: IGNORE NULLS vrátí první (FIRST_VALUE) NOT NULL hodnotu nebo první NOT NULL hodnotu od konce (LAST_VALUE). IDAS - Přednáška IX

Funkce FIRST_VALUE a LAST_VALUE IDAS - Přednáška IX

NTH_VALUE Umožňuje nalézt specifický řádek (dle pořadí) v definovaném okně. – Příklad: Třetí nejpracovitější zaměstnanec v oddělení. Syntaxe: Význam – expr - výraz, jehož hodnotu hledáme. – n - daná pozice (offset). – RESPECT NULLS - výchozí chování, rozhoduje o tom, zda jsou při kalkulaci pozice brány v úvahu i řádky obsahující NULL hodnotu. – FROM FIRST/FROM LAST - Definují, zdali se offset uplatňuje od počátku nebo konce okna. IDAS - Přednáška IX

Pokročilé funkce Pokročilé agregační funkce pro analýzu: – LISTAGG – FIRST/LAST – Inverzní percentil – Hypotetický Rank – Lineární regrese – Statistická agregace – Uživatelsky definovaná agregace Více o pokročilých funkcích: – IDAS - Přednáška IX

Funkce LISTAGG Serializace hodnot okna do jednoho řádku. Syntaxe: Význam: – expr - výraz, jenž bude serializován. – delimiter - oddělovač, jenž bude výrazy z jednotlivých řádků oddělovat. – oby_expression_list - definuje pořadí, v jakém budou jednotlivé výrazy seřazeny. IDAS - Přednáška IX

Funkce LISTAGG IDAS - Přednáška IX

Funkce FIRST/LAST Funkce FIRST/LAST umožňují nejprve stanovit pořadí řádků v určité množině a pak následně pracovat s jejími nejlépe či nejhůře hodnocenými prvky. Tabulku můžeme pomocí funkcí FIRST/LAST nejprve „ohodnotit“ podle sloupce A, ale následná agregační funkce bude pracovat se sloupcem B (s nej-hodnotami podle A). Hlavním přínosem funkcí FIRST/LAST je možnost vyhnout se použití spojení SELF JOIN. Syntaxe začíná klasickou agregační funkcí (která produkuje jedno řádkový výstup za skupinu). Pro specifikaci pořadí se využije nová klauzule KEEP. IDAS - Přednáška IX

Funkce FIRST/LAST Syntaxe: IDAS - Přednáška IX

Funkce FIRST_LAST IDAS - Přednáška IX Následující dotaz vypočítavá následující sloupce: Ceníkovou cenu produktu s nejnižší minimální cenou. Nejnižší minimální cenu. Ceníkovou cenu produktu s nejvyšší minimální cenou. Nejvyšší minimální cenu.

Funkce FIRST/LAST IDAS - Přednáška IX Význam sloupců ve výsledku: Ceníkovou cenu produktu s nejnižší minimální cenou. Nejnižší minimální cenu. Ceníkovou cenu produktu s nejvyšší minimální cenou. Nejvyšší minimální cenu.

Dovětek k analytickým funkcím Při využívání pokročilých analytických funkcí je třeba mít na paměti následující: – Zkontrolovat si, jakým způsobem daná funkce reaguje na NULL hodnoty a jaké má možnosti práce s nimi. – Jak daná funkce pracuje s duplicitami. Typicky při seřazení podle neunikátního klíče (jako třeba mzda), můžeme narazit na stejné hodnoty - a jak se pak zachová hodnota? Vrátí všechny řádky odpovídající stejné mzdě (windowing klauzule) nebo vrátí jen jeden řádek (funkce FIRST_VALUE)? A který? IDAS - Přednáška IX

Statistické funkce MEDIAN – Ze seřazené řady hodnot vrátí funkce tu hodnotu, jenž se nachází uprostřed řady. STATS_MODE – Modus. Funkce vrátí hodnotu, jenž se ve statistickém souboru hodnot vyskytuje nejčastěji. Shrnutí statistických funkcí: – IDAS - Přednáška IX