SQL praca z tabelami 4. Wykład 7

Podobne dokumenty
Wykład 6. SQL praca z tabelami 3

SQL (ang. Structured Query Language)

Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

Autor: Joanna Karwowska

Wykład 5. SQL praca z tabelami 2

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

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

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

Autor: Joanna Karwowska

Przestrzenne bazy danych Podstawy języka SQL

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

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

SQL do zaawansowanych analiz danych część 1.

Struktura bazy danych

Zadania z SQLa (MS SQL Server)

Wykład 8. SQL praca z tabelami 5

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

Podstawy języka SQL cz. 2

Podstawowe zapytania SELECT (na jednej tabeli)

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

Ćwiczenie 3 funkcje agregujące

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

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

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do języka SQL

Język SQL. Rozdział 2. Proste zapytania

Grupowanie i funkcje agregacji

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

Bazy danych - Materiały do laboratoriów IV

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Relacyjne bazy danych. Podstawy SQL

Laboratorium Bazy danych SQL 3 1

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

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

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

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

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

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

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

Wykład 05 Bazy danych

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

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

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

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

Klasyczna Analiza Danych

Język SQL, zajęcia nr 2

Grupowanie i funkcje agregujące

Konstruowanie Baz Danych DQL agregacja danych

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

PODZAPYTANIE (SUBSELECT)

Grupowanie danych klauzula GROUP BY

3. Podzapytania, łączenie tabel i zapytań

LAB 3 (część 1 Projektu)

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

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Technologie baz danych

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

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

Język SQL podstawy zapytań

Laboratorium Bazy danych SQL 2

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

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Podyplomowe Studia Systemy informatyczne w logistyce

Bazy danych. Polecenia SQL

Technologie baz danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Bazy danych SQL Server 2005

Paweł Rajba

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

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

Bazy danych. dr inż. Arkadiusz Mirakowski

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

P o d s t a w y j ę z y k a S Q L

SQL. Æwiczenia praktyczne

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

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

Kurs. Podstawy MySQL

Bazy danych wykład trzeci. Konrad Zdanowski

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

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

ACESS- zadania z wykorzystaniem poleceń SQL

Współczesne systemy baz danych

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

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Funkcje agregujące i ciąg dalszy SQL

Politechnika Poznańska TWO

Zagadnienia podstawowe

Transkrypt:

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ć np. średnią wartość zamówienia, liczbę klientów zamieszkałych na danym obszarze czy liczba towarów spełniających zadane kryteria. Uzyskanie takich złożonych informacji umożliwiają funkcje agregujące. Najczęściej używane funkcje agregujące to: AVG(wyrażenie) oblicza wartość średnią BIT_AND(wyrażenie) - oblicza iloczyn bitowy BIT_OR(wyrażenie) oblicza sumę bitową BOOL_AND - oblicza iloczyn logiczny BOOL_OR - oblicza sumę logiczną COUNT(wyrażenie) oblicza liczbę wierszy zwróconych przez zapytanie GROUP_CONCAT(wyrażenie) tworzy ciąg będący połączeniem zwróconych przez zapytanie wartości różnych od NULL 2

Funkcje agregujące MIN(wyrażenie) - podaje wartość minimalną zwróconą przez zapytanie MAX(wyrażenie) podaje wartość maksymalną zwróconą przez zapytanie STD(wyrażenie) - oblicza odchylenie standardowe z wartości zwróconych przez zapytanie STDDEV(wyrażenie) oblicza odchylenie standardowe tak jak STD STDDEV_POP (wyrażenie) oblicza odchylenie standardowe tak jak STD SUM(wyrażenie) oblicza sumę wartości zwróconych przez zapytanie VAR_POP(wyrażenie) oblicza wariancję standardową z wartości zwróconych przez zapytanie VARIANCE(wyrażenie) oblicza wariancję standardową z wartości zwróconych przez zapytanie 3

Funkcje agregujące SELECT COUNT(*) FROM pracownicy; (zwraca kolumnę zawierającą liczbę pracowników) SELECT COUNT(*) FROM pracownicy WHERE stanowsko_id=3; (zwraca kolumnę zawierającą liczbę pracowników pracujących na stanowisku z id=3) SELECT COUNT(*) AS liczba sprzedawców FROM pracownicy WHERE stanowsko_id=3; (zwraca kolumnę zawierającą liczbę pracowników pracujących na stanowisku z id=3 (sprzedawcy) z nazwą kolumny liczba sprzedawców ) SELECT MAX(placa) AS najwyższe wynagrodzenie FROM pracownicy; zwraca kolumnę z wartością maksymalną placy i nazwą najwyższe wynagrodzenie 4

Funkcje agregujące SELECT MIN(placa) AS najniższe wynagrodzenie FROM pracownicy; zwraca kolumnę z minimalną placą i nazwą najniższe wynagrodzenie SELECT AVG(placa) AS średnie wynagrodzenie, MAX(placa) AS Maksymalne wynagrodzenie, MIN(placa) AS Minimalne wynagrodzenie FROM pracownicy; zwraca trzy kolumny z wartościami średniej, maksymalnej i minimalnej placy (i nazwą wynagrodzenie) SELECT AVG(placa) AS średnie wynagrodzenie, MAX(placa) AS Maksymalne wynagrodzenie, MIN(placa) AS Minimalne wynagrodzenie FROM pracownicy WHERE stanowisko_id=3; zwraca trzy kolumny z wartościami średniej maksymalnej i minimalnej placy (wynagrodzenia) dla pracowników na stanowisku z id=3 5

Funkcje agregujące SELECT SUM(placa) AS Suma płac FROM pracownicy; zwraca kolumnę z sumą plac wszystkich pracowników i nazwą Suma płac SELECT VAR_POP(placa) AS wariancja płac FROM pracownicy; zwraca kolumnę z wariancja dla wartości plac wszystkich pracowników i nazwą Wariancja płac SELECT STDDEV(placa) AS odchyl stand płac FROM pracownicy; zwraca kolumnę z odchyl stand dla wartości plac wszystkich pracowników i nazwą odchyl stand płac 6

Funkcje agregujące (GROUP_CONCAT) Funkcja grupująca GROUP_CONCAT pozwala na połączenie wartości występujących w agregowanej kolumnie i zaprezentowanie ich w postaci łańcucha znakowego w postaci: GROUP_CONCAT( [DISTINCT] wyrażenie [ORDER BY typ_sortowania [ASC DESC] kolumna] [SEPARATOR separator] ) DISTINCT usuwa duplikaty z wyników zapytania, a domyślnym separatorem jest przecinek. 7

Funkcje agregujące (GROUP_CONCAT) SELECT GROUP_CONCAT(nazwisko) AS Nazwiska FROM pracownicy; zwraca nazwiska pracowników rozdzielone przecinkami SELECT GROUP_CONCAT(DISTINCT nazwisko ORDER BY nazwisko SEPARATOR ; ) AS Nazwiska FROM pracownicy; zwraca nazwiska pracowników (bez duplikatów) uporządkowane alfabetycznie i rozdzielone średnikami. 8

Grupowanie danych Funkcje agregujące pozwalają na zebranie danych dotyczących wielu wierszy tabeli, ale są one pobierane ze względu na jedno kryterium (np. średnia płaca na stanowisku sprzedawca). Czasem potrzebujemy bardziej złożonego grupowania np. jaka jest średnia płaca na różnych stanowiskach. Można to uzyskać za pomocą serii zapytań opisanych wcześniej lub przez klauzulę grupującą GROUP BY w postaci: SELECT kolumna1[, kolumna2,, kulumnan] FROM tabela1[, tabela2,, tabelan] WHERE warunki GROUP BY kolumna1[, kolumna2,, kolumnan] a wyniki zostaną zgrupowane względem wskazanych kolumn. 9

Grupowanie danych SELECT stanowisko_id, AVG(placa) AS Średnia płaca FROM pracownicy GROUP BY stanowisko_id; wyświetla tabele o dwóch kolumnach stanowisko_id i Średnia płaca uporządkowanych (zgrupowanych) względem kolumny stanowisko_id. SELECT nazwa AS Stanowisko, AVG(placa) AS Średnia płaca FROM pracownicy, stanowiska WHERE pracownicy.stanowisko_id=stanowiska.id GROUP BY nazwa; wykorzystuje złączenie tabel (pracownicy.stanowisko_id=stanowiska.id) i wyświetla kolumny Stanowisko i Średnia płaca uporządkowane jak wyżej. 10

Grupowanie danych SELECT nazwa AS Stanowisko, AVG(placa) AS Średnia płaca FROM pracownicy, stanowiska WHERE pracownicy.stanowisko_id=stanowiska.id GROUP BY nazwa ORDER BY Średnia płaca DESC; wykorzystuje złączenie tabel (pracwnicy.stanowisko_id=stanowiska.id) i wyświetla kolumny Stanowisko i Średnia płaca uporządkowane malejąco według średniej płacy. 11

Grupowanie danych SELECT nazwa AS Stanowisko, AVG(placa) AS Średnia płaca FROM pracownicy, stanowiska WHERE pracownicy.stanowisko_id=stanowiska.id AND pracownicy.pesel IS NOT NULL GROUP BY nazwa ORDER BY Średnia płaca DESC; podobnie jak w przykładzie wcześniejszym ale dla pracowników dla których podano w tabeli pesel. 12

Grupowanie danych SELECT nazwa AS Stanowisko, nazwisko, COUNT(*) AS Liczba pracowników FROM pracownicy, stanowiska WHERE pracownicy.stanowisko_id=stanowiska.id GROUP BY nazwa, nazwisko ORDER BY stanowisko, nazwisko; wyświetla kolumny Stanowisko, nazwisko i Liczba pracowników (pokazuje liczbę pracowników na każdym stanowisku i dla danego nazwiska) i uporządkowanych względem: najpierw stanowisko a potem nazwisko. Wykonano grupowanie względem dwóch kolumn. 13

Grupowanie danych W grupowaniu danych można wykorzystywać klauzulę HAVING wprowadzającą dodatkowe warunki grupowania w postaci: SELECT kolumna1[, kolumna2,, kulumnan] FROM tabela1[, tabela2,, tabelan] WHERE warunki_where GROUP BY kolumna1[, kolumna2,, kolumnan] HAVING warunki_having przy czym warunki_having określają, jakie warunki muszą spełniać dane - wyniki działania funkcji agregujących, aby zostały wyświetlone, np. SELECT nazwa AS Stanowisko, AVG(placa) AS Średnia płaca FROM pracownicy, stanowiska WHERE pracownicy.stanowisko_id=stanowiska.id GROUP BY nazwa HAVING AVG(placa) > 1400 ORDER BY Średnia płaca DESC; wyświetla stanowiska i średnie płace powyżej 1400. 14