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

Podobne dokumenty
Grupowanie danych klauzula GROUP BY

Autor: Joanna Karwowska

Autor: Joanna Karwowska

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

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

SQL praca z tabelami 4. Wykład 7

Bazy danych - Materiały do laboratoriów IV

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

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

SQL (ang. Structured Query Language)

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

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

SQL do zaawansowanych analiz danych część 1.

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

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

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

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

Zadania z SQLa (MS SQL Server)

Język SQL, zajęcia nr 2

Podstawowe zapytania SELECT (na jednej tabeli)

Systemy GIS Tworzenie zapytań w bazach danych

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

Bazy danych SQL Server 2005

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

Ćwiczenie 3 funkcje agregujące

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

Podstawy języka SQL cz. 2

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

Konstruowanie Baz Danych DQL agregacja danych

Klasyczna Analiza Danych

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

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

Przestrzenne bazy danych Podstawy języka SQL

Plan. ! Podzapytania (subqueries) ! Podzapytania do tabel. ! Podzapytanie jako wyrażenie. ! Podzapytania skorelowane. ! operatory IN, NOT IN

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

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Rozszerzenia grupowania

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Tabela SPRZEDAŻ WYCIECZEK

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

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

OLAP i hurtownie danych c.d.

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Wykład 5. SQL praca z tabelami 2

Bazy danych. Andrzej Łachwa, UJ, /15

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

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

W y k ł a d SELECT. Polecenie wyświetlające zawartość tabeli. Składnia uproszczona: Temat: Polecenie SELECT. Plan wykładu:

Relacyjne bazy danych. Podstawy SQL

Struktura bazy danych

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

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

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

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Laboratorium Bazy danych SQL 3 1

Wykład 8. SQL praca z tabelami 5

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

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

Bazy danych. dr inż. Arkadiusz Mirakowski

LAB 3 (część 1 Projektu)

Wykład 05 Bazy danych

Relacyjne bazy danych. Podstawy SQL

Podyplomowe Studia Systemy informatyczne w logistyce

Grupowanie i funkcje agregacji

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

OnLine Analytical Processing (OLAP) Zapytania SQL

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

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

170 Bazy danych. Perspektywy

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Język SQL w Delphi. 1. Kwerendy Przygotowanie do ćwiczenia Komenda SELECT

Grupowanie i funkcje agregujące

Paweł Rajba

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

PODZAPYTANIE (SUBSELECT)

Podstawowe funkcje dodatku linq w C#

Język SQL podstawy zapytań

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Wprowadzenie do baz danych

Funkcje agregujące i ciąg dalszy SQL

Język SQL. Rozdział 2. Proste zapytania

Plan. ! Łączenie danych z wielu tabel. ! Użycie aliasów dla nazw tabel. " złączenia JOIN. " suma zbiorów - UNION

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Kurs. Podstawy MySQL

Laboratorium nr 1. i 2.

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel

Zagadnienia podstawowe

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

SQL do zaawansowanych analiz danych część 1.

Współczesne systemy baz danych

Transkrypt:

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 wierszy Wyświetlanie tylko pierwszych n wierszy zbioru wynikowego Określenie zakresu wartości w klazuli ORDER BY fraza WITH TIES powoduje, że zwracane są dodatkowo wszystkie elementy o wartościach takich jak element ostatni SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC

Użycie funkcji agregujących Funkcja agregująca Opis AVG COUNT COUNT (*) MAX MIN SUM STDEV STDEVP VAR VARP Średnia wartości w wyrażeniu numerycznym Liczba wartości w wyrażeniu Liczba wybranych wierszy Największa wartość w wyrażeniu Najmniejsza wartość w wyrażeniu Totalna wartość w wyrażeniu numerycznym Statystyczne odchylenie wszystkich wartości Statystyczne odchylenie dla popularcji Statystyczna wariancja dla wszystkich wartości Statystyczna wariancja dla wszystkich wartości w populacji

Użycie funkcji agregujących z wartościami Null Większość funkcji agregujących ignoruje wartości Null Funkcja COUNT(*) zlicza wiersze z wartościami Null SELECT COUNT (*) FROM employees SELECT COUNT(reportsto) FROM employees

Przykłady Policz średnią cenę jednostkową dla wszystkich produktów w tabeli products: SELECT AVG(unitprice) FROM products Zsumuj wszystkie wartości w kolumnie quantity w tabeli order details: SELECT SUM(quantity) FROM [order details]

Ćwiczenie 1. Podaj liczbę produktów o cenach mniejszych niż 10$ lub większych niż 20$ 2. Podaj maksymalną cenę produktu dla produktów o cenach poniżej 20$ 3. Podaj maksymalną i minimalną i średnią cenę produktu dla produktów o produktach sprzedawanych w butelkach ( bottle ) 4. Wypisz informację o wszystkich produktach o cenie powyżej średniej 5. Podaj sumę/wartość zamówienia o numerze 10250

Grupowanie danych klauzula GROUP BY Użycie kluazuli GROUP BY Użycie klauzuli GROUP BY z klauzulą HAVING

Użycie klauzuli GROUP BY SELECT productid, orderid,quantity FROM orderhist productid orderid quantity 1 1 5 1 1 10 2 1 10 2 2 25 3 1 15 3 2 30 SELECT productid,sum(quantity) AS total_quantity FROM orderhist GROUP BY productid Tylko wiersze spełniające klauzulę WHERE są grupowane productid total_quantity 1 15 2 35 3 45 productid total_quantity 2 35 SELECT productid,sum(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid

Przykład Napisz polecenie, które zwraca informacje o zamówieniach z tablicy order details. Zapytanie ma grupować i wyświetlać identyfikator każdego produktu a następnie obliczać ogólną zamówioną ilość. Ogólna ilość jest sumowana funkcją agregującą SUM i wyświetlana jako jedna wartość dla każdego produktu. SELECT productid, SUM(quantity) AS total_quantity FROM [order details] GROUP BY productid

Ćwiczenia 1. Podaj maksymalną cenę zamawianego produktu dla każdego zamówienia 2. Posortuj zamówienia wg maksymalnej ceny produktu 3. Podaj maksymalną i minimalną cenę zamawianego produktu dla każdego zamówienia 4. Podaj liczbę zamówień dostarczanych przez poszczególnych spedytorów (przewoźników) 5. Który z spedytorów był najaktywniejszy w 1997 roku

Użycie klauzuli GROUP BY z klauzulą HAVING SELECT productid, orderid,quantity FROM orderhist productid orderid quantity 1 1 5 1 1 10 2 1 10 2 2 25 SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 productid total_quantity 2 35 3 45 3 1 15 3 2 30

Przykład Wyświetl listę identyfikatorów produktów i ilość dla tych produktów, których zamówiono ponad 1200 jednostek SELECT productid, SUM(quantity) AS total_quantity FROM [order details] GROUP BY productid HAVING SUM(quantity)>1200

Ćwiczenia 1. Wyświetl zamówienia dla których liczba pozycji zamówienia jest większa niż 5 2. Wyświetl klientów dla których w 1998 roku zrealizowano więcej niż 8 zamówień (wyniki posortuj malejąco wg łącznej kwoty za dostarczenie zamówień dla każdego z klientów)

Generowanie wartości zagregowanych w zbiorach wynikowych Użycie klazuli GROUP BY z operatorem ROLLUP Użycie klauzuli GROUP BY z operatorem CUBE Użycie funkcji GROUPING

Użycie klauzuli GROUP BY z operatorem ROLLUP SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH ROLLUP ORDER BY productid, orderid productid orderid total_quantity NULL NULL 95 1 NULL 15 1 1 5 1 2 10 2 NULL 35 2 1 10 2 2 25 3 NULL 45 3 1 15 3 2 30 Opis Suma totalna Sumuje wiersze tylko dla productid 1 Szczegółowa wartość dla productid 1, orderid 1 Szczegółowa wartośćproductid 1, orderid 2 Sumuje wiersze tylko dla productid 2 Szczegółowa wartość dla productid 2, orderid 1 Sumuje wiersze tylko dla productid 3 Szczegółowa wartość dla productid 3, orderid 1 Szczegółowa wartość dla productid 3, orderid 2

Przykład Przykład zwraca informacje o zamówieniach z tablicy order details. Zapytanie zawiera instrukcję select z klauzulą GROUP BY bez operatora ROLLUP. Przykład ten zwraca listę ogólnej ilości zamawianej dla każdego produktu w każdym zamówieniu, dla zamówień z orderid mniejszym niż 10250 SELECT orderid, productid, SUM(quantity) AS total_quantity FROM [order details] WHERE orderid < 10250 GROUP BY orderid, productid ORDER BY orderid, productid

Przykład Przykład dodaje operator ROLLUP do poprzedniego wyrażenia. Zbiór wynikowy zawiera ogólną ilość dla: każdego produktu w każdym zamówieniu wszystich produktów dla każdego zamówienia wszystkich produktów dla wszystkich zamówień SELECT orderid, productid, SUM(quantity) AS total_quantity FROM [order details] WHERE orderid < 10250 GROUP BY orderid, productid WITH ROLLUP ORDER BY orderid, productid

Użycie klauzuli GROUP BY z operatorem CUBE SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid Operator CUBE produkuje 2 więcej podsumowujących wartości niż operator ROLLUP productid orderid total_quantity NULL NULL 95 NULL 1 30 NULL 2 65 1 NULL 15 1 1 5 1 2 10 2 NULL 35 2 1 10 2 2 25 3 NULL 45 3 1 15 3 2 30 Opis Suma totalna Sumuje wszystkie wiersze dla orderid 1 Sumuje wszystkie wiersze dla orderid 2 Sumuje tylko wiersze dla productid 1 Szczegółowa wartość dla productid 1, orderid 1 Szczegółowa wartość dla productid 1, orderid 2 Sumuje tylko wiersze dla productid 2 Szczegółowa wartość dla productid 2, orderid 1 Szczegółowa wartośćdla productid 2, orderid 2 Sumuje tylko wiersze dla productid 3 Szczegółowa wartość dla productid 3, orderid 1 Szczegółowa wartość dla productid 3, orderid 2

Użycie klauzul COMPUTE i COMPUTE BY COMPUTE SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) productid orderid quantity 1 1 5 1 2 10 2 1 10 2 2 25 3 1 15 3 2 30 sum 95 COMPUTE BY SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) productid orderid quantity 1 1 5 1 2 10 sum 15 2 1 10 2 2 25 sum 35 3 1 15 3 2 30 sum 45 sum 95