Schemat bazy danych. Funkcje analityczne. ROLLUP - wynik ROLLUP

Wielkość: px
Rozpocząć pokaz od strony:

Download "Schemat bazy danych. Funkcje analityczne. ROLLUP - wynik ROLLUP"

Transkrypt

1 Schemat bazy danych TIMES # TIME_KEY TRANSACTION_DATE DAY_OF_WEEK HOLIDAY_FLAG Funkcje analityczne Operatory ROLLUP i CUBE, funkcja GROUPING, funkcje porządkujące (ranking), okienkowe, raportujące, statystyczne, funkcje LAG/LAD PRODUCTS # PRODUCT_KEY DESCRIPTION FULL_DESCRIPTION PRODUCT_TYPE PRODUCT_CATEGORY BRAND AGE_CATEGORY DEPARTMENT SALES_FACT # TIME_KEY # STORE_KEY # PRODUCT_KEY SALES UNIT_SALES COST CUSTOMER_COUNT PROFIT STORE # STORE_KEY STORE_NAME CITY REGION FLOOR_PLAN_TYPE STORE_SIZE REPORTS ROLLUP Polecenie ROLLUP jest rozszerzeniem klauzuli GROUP BY, które pozwala wyliczać podsumowania częściowe i ogólne. Polecenie ROLLUP służy do konstruowania pół-kostek danych. ROLLUP jest wyrażeniem wyjątkowo wydajnym. Dla n kolumn grupujących ROLLUP tworzy n + 1 podsumowań. SELECT atrybuty grupujące, agregaty FROM WHERE GROUP BY BY ROLLUP (atrybuty grupujące); SELECT t.day_of_week, p.description, s.city, s.city, SUM(sf.sales) AS AS sum_sales, COUNT(*) AS AS num_of_sales FROM FROM times timest, t, products p, p, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND p.product_key = sf.product_key AND AND s.store_key = sf.store_key AND AND s.region = East' East' AND AND p.brand = Wild WildAge' GROUP BY BY ROLLUP(t.day_of_week, p.description, s.city); ROLLUP - wynik DAY_OF_WEEK DESCRIPTION CITY SUM_SALES Friday The Net Atlanta 180,17 Friday The Net Boston 247,59 Friday The Net NULL 5421,26 Friday The Secret Garden Philadelphia 17,15 Friday The Secret Garden Pittsburgh 38,22 Friday The Secret Garden Washington 135,77 Friday The Secret Garden NULL 362,59 Friday The Shawshank Redemption Boston 75,04 Friday The Shawshank Redemption New York 190,05 Friday The Shawshank Redemption Pittsburgh 20,93 Friday The Shawshank Redemption Washington 108,82 Friday The Shawshank Redemption NULL 394,84 Friday Village of the Damned New York 605,73 Friday Village of the Damned Philadelphia 126,4 Friday Village of the Damned Pittsburgh 171,01 Friday Village of the Damned Washington 199,94 Friday Village of the Damned NULL 1655,36 Friday NULL NULL 10389, NULL NULL NULL 66917,79

2 Częściowa operacja ROLLUP SELECT atrybuty grupujące, agregaty FROM WHERE GROUP BY BY atrybut, ROLLUP (atrybuty grupujące); SELECT t.day_of_week, p.product_type, s.city, s.city, SUM(sf.cost) AS AS sum_sales, COUNT(*) AS AS num_of_sales FROM FROM times timest, t, products p, p, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND p.product_key = sf.product_key AND AND s.store_key = sf.store_key AND AND s.region = 'East' 'East' GROUP BY BY t.day_of_week, ROLLUP(p.product_type, s.city); CUBE Operator CUBE tworzy podsumowania dla wszystkich możliwych kombinacji grupowanych kolumn. W terminologii analiz wielowymiarowych, CUBE generuje podsumowania częściowe i ogólne tabeli faktów dla wszystkich możliwych wymiarów. Dla n kolumn grupujących CUBE tworzy 2 n podsumowań. SELECT atrybuty grupujące, agregaty FROM WHERE GROUP BY BY CUBE (atrybuty grupujące); SELECT p.product_category, s.region, SUM(sf.profit) AS AS sum_profit, SUM(unit_sales) AS AS sum_unit_sales FROM FROM products p, p, store stores, s, sales_fact sf sf AND AND s.store_key = sf.store_key GROUP BY BY CUBE( CUBE( p.product_category, s.region); CUBE - wynik Częściowa operacja CUBE PRODUCT_CATEGORY REGION SUM_PROFIT SUM_UNIT_SALES Action Central Action East Action West Action NULL Alcohol Central Alcohol East Alcohol West Alcohol NULL Candy Central Candy East Candy West Candy NULL Video Game Central Video Game East Video Game West Video Game NULL NULL Central NULL East NULL West NULL NULL SELECT atrybuty grupujące, agregaty FROM WHERE GROUP BY BY atrybut, CUBE (atrybuty grupujące); SELECT to_char(t.transaction_date,'month') AS AS month, p.product_category, s.region, SUM(sf.profit) AS AS sum_profit, SUM(unit_sales) AS AS sum_unit_sales FROM FROM times timest, t, products p, p, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND p.product_key = sf.product_key AND AND s.store_key = sf.store_key AND AND p.department = 'Video 'Video Rental' GROUP BY BY to_char(t.transaction_date,'month'), to_char(t.transaction_date,'mm'), CUBE CUBE (( p.product_category, s.region) ORDER BY BY to_char(t.transaction_date,'mm');

3 Podsumowanie CUBE i ROLLUP Wartości puste w operatorach ROLLUP i CUBE Operatory ROLLUP i CUBE działają niezależnie od zdefiniowanych w bazie danych hierarchii Przy operacjach ROLLUP i CUBE możemy wykorzystać również inne funkcje agregujące: COUNT, AVG, MIN, MAX, STDDEV i VARIANCE Klauzula HAVING w przypadku użycia CUBE lub ROLLUP odnosi się zarówno do elementów (wierszy) podsumowywanych jak do zwykłych Klauzula ORDER BY nie rozróżnia wierszy podsumowywanych i zwykłych. Do ich rozróżnienia trzeba użyć funkcji GROUPING Puste wartości kolumn w przypadku zapytań z funkcjami ROLLUP i CUBE mogą oznaczać operacje podsumowania wykonywaną na określonym wymiarze lub standardową wartość pustą kolumny, np. we fragmencie poniżej trzeci wiersz z wartością pustą może oznaczać podsumowanie dwóch powyższych jak i np. podsumowanie dla departamentu o pustej nazwie. Time Region Department Profit NULL VideoRental 251, NULL VideoSales 275, NULL NULL 526,000 Funkcja GROUPING Funkcja GROUPING pozwala rozróżnić wiersze z wartościami pustymi od wierszy podsumowań. Jeżeli wartość pusta oznacza podsumowanie GROUPING zwraca wartość 1, w przeciwnym przypadku 0. SELECT...,..., GROUPING(atrybut grupujący) FROM WHERE GROUP BY BY {{ ROLLUP CUBE }}(atrybuty grupujące); SELECT t.day_of_week, p.brand, s.city, s.city, GROUPING(t.day_of_week) AS AS T, T, GROUPING(p.brand) AS AS B, B, GROUPING(s.city) AS AS C, C, SUM(sf.profit) AS AS profit profit FROM FROM times timest, t, products p, p, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND p.product_key = sf.product_key AND AND s.store_key = sf.store_key AND AND p.department = 'Snacks' AND AND s.region = 'West 'West GROUP BY BY CUBE CUBE (( t.day_of_week, p.brand, s.city s.city ); ); Funkcja GROUPING - wynik Wednesday San Francisco Wednesday Seattle Wednesday Dordor Denver Dordor Los Angeles Dordor Phoenix Dordor San Francisco Dordor Seattle Dordor Galore Denver Galore Los Angeles Galore Phoenix Galore San Francisco Galore Seattle Galore Leavenworth Denver Leavenworth Los Angeles Leavenworth Phoenix Leavenworth San Francisco Leavenworth Seattle Leavenworth Denver Los Angeles Phoenix San Francisco Seattle

4 Funkcja GROUPING rozróżnienie wartości pustych od podsumowań SELECT DECODE(GROUPING(t.day_of_week),1,'All days',t.day_of_week), DECODE(GROUPING(p.product_category),1,'All cats',p.product_category), DECODE(GROUPING(s.region),1,'All regs',s.region), SUM(sf.cost) as as cost, cost, FROM FROM times timest, t, products p, p, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND p.product_key = sf.product_key AND AND s.store_key = sf.store_key GROUP BY BY CUBE CUBE (( t.day_of_week, p.product_category, s.region ); ); All days Thriller East All days Thriller West All days Thriller All regions All days Video Game Central All days Video Game East All days Video Game West 1733 All days Video Game All regions All days All categories Central All days All categories East All days All categories West All days All categories All regions Funkcje analityczne Funkcje analityczne dzielą się na następujące kategorie: porządkujące wyliczające ranking : RANK, DENSE_RANK, PERCENT_RANK, CUME_DIST, NTILE Okienkowe (funkcje okna) wyznaczają wartości agregatów dla zdefiniowanych okien : AVG, SUM, MIN, MAX, COUNT, VARIANCE, STDDEV, FIRST_VALUE, LAST_VALUE raportujące wyliczające udziały : AVG, SUM, MIN, MAX, COUNT, VARIANCE, STDDEV funkcje LAG/LEAD znajdujące wartości w krotkach o określonej odległości od krotki bieżącej statystyczne wyliczające zmiany poziomów, i inne statystyki Zagadnienia związane z funkcjami analitycznymi Kolejność przetwarzania Partycje funkcje analityczne pozwalają użytkownikom dzielić rezultat zapytania na grupy zwane partycjami. Partycje są tworzone po grupowaniu, dlatego nie są dozwolone dla nich funkcje agregujące. Podział na partycje może być oparty o dowolną kolumnę lub wyrażenie. Zagadnienia związane z funkcjami analitycznymi Okno dla każdej krotki w partycji można zdefiniować ruchome okno danych. Okno takie określa zakres krotek używanych do wykonania obliczeń dla bieżącej krotki. Rozmiary okna mogą być oparte zarówno na fizycznej liczbie krotek, jak i na logicznym przedziale, takim jak np. czas. Bieżąca krotka każde obliczenie za pomocą funkcji analitycznej jest oparte na bieżącej krotce wewnątrz partycji. Bieżąca krotka służy jako punkt odniesienia określający początek i koniec okna.

5 RANK i DENSE_RANK Funkcje RANK i DENSE_RANK pozwalają uporządkowanie elementów w grupie, np. na znalezienie trzech najlepiej sprzedających się produktów. RANK() OVER (( DENSE_RANK() OVER (( RANK - przykład SELECT s.city, SUM(sf.profit) AS AS PROFIT, RANK() OVER (( ORDER BY BY SUM(sf.sales) DESC )) AS AS RANK FROM store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key GROUP BY BY s.city; SELECT s.city, s.region, SUM(sf.sales) AS AS SALES, RANK() OVER (( PARTITION BY BY s.region ORDER BY BY SUM(sf.sales) DESC )) AS AS RANK FROM store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key GROUP BY BY s.city, s.region; RANK przykład 2 Przy pomocy funkcji RANK i DENSE_RANK można dokonywać selekcji pozycji wg wyznaczonego przez nie porządku. SELECT ** FROM (( SELECT p.description, SUM(sf.sales) AS AS SALES, RANK() OVER (( ORDER BY BY SUM(sf.sales) )) AS AS RANK FROM products p, p, sales_fact sf sf GROUP BY BY p.description )) WHERE rank BETWEEN 1 AND 10; 10; DENSE_RANK - przykład W przeciwieństwie do funkcji RANK() funkcja DENSE_RANK() nie pozostawia pustych wartości w sekwencji rankingu. SELECT p.product_category, s.city, SUM(sf.profit) AS AS PROFIT, COUNT(*) AS AS COUNT, DENSE_RANK() OVER (( PARTITION BY BY s.city ORDER BY BY COUNT(*) DESC )) AS AS RANK FROM store s, s, products p, p, sales_fact sf sf WHERE s.store_key = sf.store_key AND p.product_key = sf.product_key AND p.department = 'Video Rental' GROUP BY BY p.product_category, s.city;

6 CUME_DIST Funkcja CUME_DIST wylicza pozycję wyspecyfikowanej wartości w podzbiorze. Kolejność może być rosnąca lub malejąca. Wartości przyjmowane przez CUME_DIST są w zakresie od 0 + do 1. Definicja: CUME_DIST(x) = liczba wartości w zbiorze S występujących przed wartością x (przy określonym porządku wartości) // liczbę wszystkich wartości w zbiorze S CUME_DIST() OVER (( CUME_DIST - przykład SELECT p.description, SUM(sf.sales) AS AS SALES, CUME_DIST() OVER (( ORDER BY BY SUM(sf.sales) )) AS AS CUME_DIST FROM products p, p, sales_fact sf sf AND p.age_category = 'over 18' 18' GROUP BY BY p.description; PERCENT_RANK Funkcja PERCENT_RANK jest bardzo podobna do CUME_DIST. Różnica polega na tym, że PERCENT_RANK bierze pod uwagę pozycję przy określonym porządku a nie wartość. Wartości przyjmowane przez CUME_DIST są w zakresie od 0 do 1. Definicja: PERCENT_RANK(x) = ranking krotki x w partycji 1 // liczba krotek w partycji 1 PERCENT_RANK() OVER (( PERCENT_RANK - przykład SELECT p.description, s.region, SUM(sf.profit) AS AS PROFIT, PERCENT_RANK() OVER (( PARTITION BY BY s.region ORDER BY BY SUM(sf.profit) )) AS AS PERCENT FROM store s, s, products p, p, sales_fact sf sf AND s.store_key = sf.store_key AND p.age_category = 'over 18' 18' GROUP BY BY p.description, s.region;

7 NTILE NTILE dzieli krotki w uporządkowanej partycję na określoną liczbę grup (bucket) i przypisuje każdej z nich liczbę porządkową. Liczba krotek między grupami różni się co najwyżej o jedną krotkę. Funkcja NTILE służy przede wszystkim do wyliczania kwantyli, kwartyli i median. NTILE jest funkcją niedeterministyczną. NTILE(N) OVER (( NTILE - przykład SELECT s.city, SUM(sf.unit_sales) AS AS UNIT_SALES, NTILE(5) OVER (( ORDER BY BY SUM(sf.unit_sales) )) AS AS NTILE FROM store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key GROUP BY BY s.city ORDER BY BY NTILE, UNIT_SALES DESC; SELECT t.day_of_week, s.city, SUM(sf.profit) AS AS PROFIT, NTILE(7) OVER (( PARTITION BY BY s.city ORDER BY BY SUM(sf.profit) DESC) AS AS NTILE FROM times t, t, store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key AND t.time_key = sf.time_key GROUP BY BY t.day_of_week, s.city ORDER BY BY NTILE, PROFIT DESC; ROW_NUMBER Funkcja ROW_NUMBER przypisuje unikalny numer każdej krotce w partycji. Podobnie jak funkcja NTILE, ROW_NUMBER jest niedeterministyczna. Aby zapewnić deterministyczny wynik sortowanie musi się odbywać po kluczu unikalnym. ROW_NUMBER() OVER (( ROW_NUMBER - przykład SELECT s.city, SUM(sf.profit) --SUM(sf.cost) AS AS FINAL, ROW_NUMBER() OVER (( ORDER BY BY SUM(sf.profit) --SUM(sf.cost) DESC )) AS AS NUM FROM store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key GROUP BY BY s.city; SELECT p.description, p.age_category, TRUNC(SUM(sf.customer_count),-3) AS AS CUSTOMERS, ROW_NUMBER() OVER (( PARTITION BY BY p.age_category ORDER BY BY TRUNC(SUM(sf.customer_count),-3) DESC )) AS AS NUM FROM products p, p, sales_fact sf sf AND p.department = 'Video Sale' GROUP BY BY p.description, p.age_category

8 Funkcje okienkowe Funkcje okienkowe operują na uporządkowanym zbiorze krotek i dla każdej krotki obliczają wartość agregowaną dla okna, którego środkiem jest bieżąca krotka. Rozmiary okna mogą być nieograniczone lub ograniczone. Podobnie jak w przypadku funkcji rankingowych zbiór danych może być najpierw podzielony na partycje. Rodzina funkcji okienkowych to w rzeczywistości rozszerzona składnia i funkcjonalność klasycznych funkcji agregujących SUM, AVG, MIN, MAX, STDDEV, VARIANCE, COUNT, FIRST_VALUE i LAST_VALUE. Cechy funkcji okienkowych Oprócz funkcji standardowych SUM, AVG, MIN,... Jako funkcje okienkowe można wykorzystać funkcje analizy regresji VAR_SAMP, VAR_POP, STDDEV_SAMP, STDDEV_POP, COVAR_SAMP, COVAR_POP, REGR_SLOPE, REGR_INTERCEPT, REGR_R2, REGR_AVGX, REGR_AVGY, REGR_COUNT, REGR_SXX, REGR_SXY, REGR_SYY Każda funkcja może mieć klauzulę definiującą rozmiar okna (w przeciwnym wypadku okno jest nieograniczone obejmuje wiersze od początku partycji do bieżącego wiersza) Każda funkcja ma własną klauzulę sortującą Funkcje agregujące w oknach są resetowane na granicy partycji Dla każdego wyrażenia występującego w funkcji można określać porządek wzrastający i malejący Wartości puste mogą być umieszczane na początku bądź końcu (niezależnie od porządku sortowania) Określanie rozmiarów okien Fizyczne: wyrażone w liczbie krotek, dodatkowo słowa kluczowe CURRENT ROW: okno rozpoczyna się lub kończy w bieżącym wierszu UNBOUNDED PRECEDING: okno rozpoczyna się na pierwszej krotce partycji UNBOUNDED FOLLOWING: okno kończy się na ostatniej krotce partycji Czasowe: wyrażone interwałem czasowym Zakresy wartości: wyrażone różnicą między wartością w bieżącej krotce i wartością poprzedzającą Funkcja okienkowa ze stałym oknem Okno dla każdej krotki zaczyna się zawsze na początku bieżącej partycji stałe jest osadzenie początku okna SELECT p.description, t.transaction_date, sf.sales, SUM(sf.sales) OVER (( PARTITION BY BY p.description ORDER BY BY t.transaction_date ROWS UNBOUNDED PRECEDING )) AS AS GRAND_SUM FROM times t, t, store s, s, products p, p, sales_fact sf sf WHERE t.time_key = sf.time_key AND s.store_key = sf.store_key AND p.product_key = sf.product_key AND s.city = 'Atlanta' AND p.department = 'Video Rental' AND TO_CHAR(t.transaction_date,'D') = 7; 7;

9 Funkcja okienkowa ze zmiennym oknem Okno dla bieżącej krotki jest wyrażone jako odległość 15 dni wstecz od daty bieżącej transakcji SELECT t.transaction_date, sf.sales, AVG(sf.sales) OVER (( ORDER BY BY t.transaction_date RANGE INTERVAL '15' '15' DAY PRECEDING )) AS AS AVERAGE FROM times t, t, store s, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND s.store_key = sf.store_key AND s.city = 'New York' AND sf.profit > ORDER BY BY AVERAGE DESC; Funkcja okienkowa ze zmiennym oknem Okno dla bieżącej krotki jest wyrażone jako dwie krotki wstecz od bieżącej krotki SELECT t.transaction_date, AVG(sf.sales) OVER (( PARTITION BY BY t.transaction_date ORDER BY BY t.transaction_date ROWS BETWEEN 2 PRECEDING AND 0 FOLLOWING) AS AS AVERAGE FROM times t, t, products p, p, sales_fact sf sf WHERE t.time_key = sf.time_key AND p.product_key = sf.product_key AND t.day_of_week = 'Monday' AND p.description = 'Toy 'ToyStory'; Funkcje FIRST_VALUE i LAST_VALUE Funkcje FIRST_VALUE i LAST_VALUE pozwalają użytkownikowi odczytywać wartości z pierwszej i ostatniej krotki w oknie. Pozwalają one na analizę porównawczą z wartościami bazowymi dla danego okna. SELECT city, city, region, sum_sales, LAST_VALUE(sum_sales) OVER (( PARTITION BY BY region ORDER BY BY sum_sales ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )) AS AS LAST_VAL FROM (( SELECT s.city, s.region, SUM(sf.sales) AS AS sum_sales FROM store s, s, sales_fact sf sf WHERE s.store_key = sf.store_key GROUP BY BY s.city, s.region ); ); Funkcje raportujące Podczas analizy często zachodzi konieczność porównywania wartości na różnych poziomach agregacji. Funkcje raportujące umożliwiają włączanie do krotek wartości pochodzących z różnych poziomów agregacji. Funkcje raportujące działają na poziomie okien i zwracają albo wartość agregatu dla całego okna albo wartość agregatu dla okna z wyłączeniem bieżącego okna. Składnia {SUM AVG MAX MIN MIN COUNT STDDEV VARIANCE} (([[ ALL ALL DISTINCT ]]{{ <value expression1> **}} )) OVER (([[ PARTITION BY BY <value expression2> [[,...,...]]]]) )

10 Przykłady funkcji raportujących SELECT p.department, s.region, SUM(sf.sales) AS AS sum_sales, MAX(SUM(sf.sales)) OVER OVER (( PARTITION BY BY p.department )) AS AS max_sales FROM FROM products p, p, store stores, s, sales_fact sf sf AND AND s.store_key = sf.store_key GROUP BY BY p.department, s.region; SELECT TO_CHAR(t.transaction_date,'MONTH') AS AS month, s.region, COUNT(sf.sales) as as count_sales, AVG(COUNT(sf.sales)) OVER OVER (( PARTITION BY BY s.region )) AS AS avg_count_sales FROM FROM times timest, t, store stores, s, sales_fact sf sf WHERE t.time_key = sf.time_key AND AND s.store_key = sf.store_key GROUP BY BY TO_CHAR(t.transaction_date,'MONTH'), s.region, TO_CHAR(t.transaction_date,'MM') ORDER BY BY TO_CHAR(t.transaction_date,'MM'), s.region; RATIO_TO_REPORT Funkcja RATIO_TO_REPORT służy do wyliczania stosunku danej wartości do sumy zbioru wartości w oknie. Jeśli wartość jest pusta, to wynikiem funkcji jest NULL. Jeśli klauzula PARTITION BY zostanie pominięta, to funkcja jest wyliczana na podstawie całego wyniku zapytania. Składnia: RATIO_TO_REPORT (<value expression1>) OVER (([[ PARTITION BY BY <value expression2> [[,...,...]]]]) ) RATIO_TO_REPORT - przykład SELECT p.age_category, SUM(sf.profit) AS AS sum_profit, RATIO_TO_REPORT(SUM(sf.profit)) OVER (()) AS AS ratio_profit, SUM(sf.sales) AS AS sum_sales, RATIO_TO_REPORT(SUM(sf.sales)) OVER (()) AS AS ratio_sales FROM products p, p, sales_fact sf sf GROUP BY BY p.age_category Funkcje LAG i LEAD Funkcje LAG i LEAD pozwalają na dostęp i porównanie wielu różnych krotek jednocześnie, bez konieczności wykonywania połączenia zwrotnego. Funkcje LAG i LEAD działają na podstawie podanego przez użytkownika przesunięcia (offset) względem bieżącej krotki. Składnia: {LAG LEAD} (( <value expression1>, [[ <offset> [[,, <default> ]]]])) OVER (([[ PARTITION BY BY <value expression2> [[,...,...]]]] ORDER BY BY <value expression3> [[ NULLS FIRST NULLS LAST ]][[,...,...]]))

11 Funkcje LAG i LEAD - przykład SELECT month, sum_cost, LAG(sum_cost,1) OVER (( ORDER BY BY month )) AS AS prev_cost, LEAD(sum_cost,1) OVER (( ORDER BY BY month )) AS AS next_cost FROM (( SELECT TO_CHAR(t.transaction_date,'MM YYYY') AS AS month, SUM(sf.cost) AS AS sum_cost FROM times t, t, sales_fact sf sf WHERE t.time_key = sf.time_key GROUP BY BY TO_CHAR(t.transaction_date,'MM YYYY') ); );

Rozdział 14 Funkcje analityczne

Rozdział 14 Funkcje analityczne Rozdział 14 Funkcje analityczne Operatory ROLLUP i CUBE, funkcja GROUPING, funkcje porządkujące (ranking), okienkowe, raportujące, statystyczne, funkcje LAG/LAD (c) Instytut Informatyki Politechniki Poznańskiej

Bardziej szczegółowo

188 Funkcje analityczne

188 Funkcje analityczne Funkcje analityczne 188 Plan rozdziału 189 Wprowadzenie do funkcji analitycznych Funkcje rankingu Funkcje okna Funkcje raportujące Funkcje LAG/LEAD Funkcje FIRST/LAST Odwrotne funkcje percentyli Funkcje

Bardziej szczegółowo

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną

Bardziej szczegółowo

SQL do zaawansowanych analiz danych część 2.

SQL do zaawansowanych analiz danych część 2. SQL do zaawansowanych analiz danych część 2. Funkcje analityczne Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan wykładu 1. Podstawowe definicje. 2. Sposób działania

Bardziej szczegółowo

Funkcje analityczne SQL CUBE (1)

Funkcje analityczne SQL CUBE (1) Funkcje analityczne SQL CUBE (1) JOB DEPTNO SUM(SAL) --------- ---------- ---------- 29025 10 8750 20 10875 30 9400 CLERK 4150 CLERK 10 1300 CLERK 20 1900 CLERK 30 950 ANALYST 6000 ANALYST 20 6000 MANAGER

Bardziej szczegółowo

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Funkcje analityczne SQL CUBE (1) Hurtownie danych - przegląd technologii Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel JOB DEPTNO SUM(SAL) 8750

Bardziej szczegółowo

SQL do zaawansowanych analiz danych część 1.

SQL do zaawansowanych analiz danych część 1. SQL do zaawansowanych analiz danych część 1. Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan

Bardziej szczegółowo

OLAP i hurtownie danych c.d.

OLAP i hurtownie danych c.d. OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji

Bardziej szczegółowo

Ćwiczenie 3. Funkcje analityczne

Ćwiczenie 3. Funkcje analityczne Ćwiczenie 3. Funkcje analityczne 1. Uruchomienie i skonfigurowanie środowiska do ćwiczeń Czas trwania: 15 minut Zadaniem niniejszych ćwiczeń jest przedstawienie podstawowych zagadnień dotyczących wykorzystywania

Bardziej szczegółowo

Rozszerzenia grupowania

Rozszerzenia grupowania Rozszerzenia grupowania 226 Plan rozdziału 227 Wprowadzenie ROLLUP CUBE GROUPING SETS GROUPING Rozszerzenia grupowania danych 228 W złożonych magazynach danych oprócz tabel faktów i wymiarów istnieje dodatkowo

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy danych wykład trzeci. Konrad Zdanowski SQL - przypomnienie Podstawowa forma kwerendy SQL: select A1,..., Ak from R1,..., Rn where ; Odpowiada jej w algebrze relacji operacja π A1,...,Ak (σ (R1 Rn)) SQL semantyka select R.

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Klasyczna Analiza Danych

Klasyczna Analiza Danych Klasyczna Analiza Danych Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Wyszukiwanie danych wg zadanego wzorca Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. 1 Funkcje grupowe (agregujące) (1) Działają na zbiorach rekordów, nazywanych grupami. Rekordy

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

ROZSZERZENIA J ZYKA SQL DLA OPERACJI ROLAP W BAZIE ORACLE8I

ROZSZERZENIA J ZYKA SQL DLA OPERACJI ROLAP W BAZIE ORACLE8I ROZSZERZENIA J ZYKA SQL DLA OPERACJI ROLAP W BAZIE ORACLE8I GRZEGORZ DZIE A, ANDRZEJ MAKULSKI Uniwersytet Technologiczno Przyrodniczy w Bydgoszczy Streszczenie W pracy przedstawiono elementy rozszerzenia

Bardziej szczegółowo

Klasyczna Analiza Danych

Klasyczna Analiza Danych Klasyczna Analiza Danych Funkcje analityczne Materiały laboratoryjne Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Wprowadzenie do c wiczenia W niniejszym ćwiczeniu student nabierze praktycznych

Bardziej szczegółowo

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Plan laboratorium Frazy SQL: group by, rollup, cube, grouping sets funkcje analityczne, budowa modeli

Bardziej szczegółowo

select zam_id, cena_euro,(rank() over (partition by zam_id order by cena_euro)) from pozycjezamowien order by zam_id

select zam_id, cena_euro,(rank() over (partition by zam_id order by cena_euro)) from pozycjezamowien order by zam_id See also: OLAP.mth Suma narastająco... 1 Min max w poszczególnych grupach... 1 Numeracja elementów w grupach... 1 KLAUZULE GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP... 1 MATERIAŁ ROBOCZY... 5 First VALUE

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów IV

Bazy danych - Materiały do laboratoriów IV Bazy danych - Materiały do laboratoriów IV dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 17 marca 2011 roku Pozostałe funkcje wierszowe Oracle:

Bardziej szczegółowo

Ćwiczenie 3 funkcje agregujące

Ćwiczenie 3 funkcje agregujące Ćwiczenie 3 funkcje agregujące Funkcje agregujące, klauzule GROUP BY, HAVING Ćwiczenie 3 funkcje agregujące Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL

Bardziej szczegółowo

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY Plan Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących Grupowanie danych - klauzula GROUP BY Generowanie wartości zagregowanych Użycie klauzul COMPUTE i COMPUTE BY Wyświetlanie początkowych

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

Bardziej szczegółowo

OnLine Analytical Processing (OLAP) Zapytania SQL

OnLine Analytical Processing (OLAP) Zapytania SQL OnLine Analytical Processing (OLAP) Zapytania SQL 17 kwietnia 2014 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Systemy OLAP I Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2008/09 Studia

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane. W tym odcinku poznasz funkcje grupujące i dwie nowe klauzule instrukcji SELECT GROUP BY i HAVING. Nauczysz się też grupować dane, czyli łączyć wiele wierszy w jeden. Grupowanie danych polega na łączeniu

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Technologie baz danych Wykład 4: Diagramy związków encji (ERD). SQL funkcje grupujące. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Plan wykładu Diagramy związków encji elementy ERD

Bardziej szczegółowo

Zaawansowany SQL. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Zaawansowany SQL. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Zaawansowany SQL Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW MySQL GREATEST i LEAST Zarówno funkcja GEATEST jak i LEAST przyjmują N argumentów

Bardziej szczegółowo

Optymalizacja poleceń SQL Metody dostępu do danych

Optymalizacja poleceń SQL Metody dostępu do danych Optymalizacja poleceń SQL Metody dostępu do danych 1 Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie,

Bardziej szczegółowo

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING Agregacja w SQL 1 Bazy Danych Wykład p.t. Agregacja i Grupowanie Danych Funkcje Agregacji. Opcje GROUP BY oraz HAVING Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały:

Bardziej szczegółowo

Grupowanie danych klauzula GROUP BY

Grupowanie danych klauzula GROUP BY Grupowanie danych klauzula GROUP BY! Użycie klazuli GROUP BY! Użycie klauzuli GROUP BY z klauzulą HAVING Użycie klauzuli GROUP BY SELECT productid, orderid,quantity SELECT productid,sum(quantity) AS total_quantity

Bardziej szczegółowo

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Konstruowanie Baz Danych DQL agregacja danych

Konstruowanie Baz Danych DQL agregacja danych Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

BEST S.A. Co nowego w SQL Server 2012 dla programistów. Cezary Ołtuszyk. coltuszyk.wordpress.com

BEST S.A. Co nowego w SQL Server 2012 dla programistów. Cezary Ołtuszyk. coltuszyk.wordpress.com BEST S.A. Co nowego w SQL Server 2012 dla programistów Cezary Ołtuszyk coltuszyk.wordpress.com Plan spotkania I. Sekwencje II. III. IV. Nowe funkcje skalarne Wzbogacona klauzula OVER Indeksy typu COLUMNSTRORE

Bardziej szczegółowo

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące Funkcje grupujące Funkcja COUNT() Funkcja SUM() Funkcja AVG() Funkcje MIN() i MAX() Funkcja GROUP_CONCAT() Grupowanie danych Operator ROLLUP Klauzula HAVING Kolejność wykonywania klauzuli zapytań Na podstawie:

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Funkcje analityczne języka SQL

Funkcje analityczne języka SQL Plan wykładu Funkcje analityczne języka SQL 1. Podstawowe definicje 2. Podział funkcji analitycznych 3. Omówienie kolejnych grup funkcji Hurtownie danych, wykład Bartosz Bębel E-mail: bartosz.bebel@cs.put.poznan.pl

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą

Bardziej szczegółowo

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną

Bardziej szczegółowo

Bazy danych 7/15. Andrzej Łachwa, UJ,

Bazy danych 7/15. Andrzej Łachwa, UJ, Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 7/15 Tabele pomocnicze Tabele pomocnicze nie są częścią modelu danych, więc nie powinny pojawiać się na etapie

Bardziej szczegółowo

Nauczycielem wszystkiego jest praktyka Juliusz Cezar. Nauka to wiara w ignorancję ekspertów Richard Feynman

Nauczycielem wszystkiego jest praktyka Juliusz Cezar. Nauka to wiara w ignorancję ekspertów Richard Feynman Oracle i DB2 zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej

Bardziej szczegółowo

Wstęp do Business Intelligence

Wstęp do Business Intelligence Wstęp do Business Intelligence Co to jest Buisness Intelligence Business Intelligence (analityka biznesowa) - proces przekształcania danych w informacje, a informacji w wiedzę, która może być wykorzystana

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 6/15 Statystyki w języku SQL W różnych produktach SQL spotkamy rozmaite funkcje wbudowane ułatwiające analizy

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne. LINQ w Microsoft Visual Basic 'zapytanie pobierające wszystkie liczby z kolekcji 'zmienna zapytanie jest typu: System.Collections.Generic.IEnumerable(Of Integer) Dim zapytanie = From wiersz In liczby 'lub

Bardziej szczegółowo

SQL - Structured Query Language. strukturalny język zapytań

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

przygotował: pawel@kasprowski.pl Podstawy języka MDX Tworzenie zbiorów

przygotował: pawel@kasprowski.pl Podstawy języka MDX Tworzenie zbiorów Podstawy języka MDX Tworzenie zbiorów Używanie zbiorów Zbiór to: wynik działania funkcji (np. funkcji members) lista elementów otoczona {...} {[Store Sales], [Unit Sales]} on columns, [Product].[Prod].[Category].members

Bardziej szczegółowo

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2007/08 Studia uzupełniajace magisterskie

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

Bardziej szczegółowo

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra Bazy danych 8. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Grupowanie i funkcje agregacji

Grupowanie i funkcje agregacji Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015 Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.

Bardziej szczegółowo

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000 LITERATURA Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000 Systemy baz danych. Pełny wykład H. Garcia Molina, Jeffrey D. Ullman, Jennifer Widom;WNT Warszawa 2006 Wprowadzenie do systemów

Bardziej szczegółowo

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 Itzik Ben-Gan Dejan Sarka Adam Machanic Kevin Farlee Zapytania w języku T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 Przekład: Natalia Chounlamany Marek Włodarz APN Promise, Warszawa 2015 Spis treści

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Laboratorium Bazy danych SQL 3 1

Laboratorium Bazy danych SQL 3 1 Laboratorium Bazy danych SQL 3 1 F U N K C J E operujące na grupach wierszy: avg([distinct all]kol) oblicza średnią arytmetyczną wartości kolumny kol wszystkich wierszy grupy. count([distinct all]wyr)

Bardziej szczegółowo

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83. Projekt współfinansowany przez Unię Europejską

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83. Projekt współfinansowany przez Unię Europejską Oracle i DB2 zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo