kurs_dla_software_developer_odc4.pdf
(
178 KB
)
Pobierz
416440360 UNPDF
Funkcje agregujące
Funkcje agregujące, to takie funkcje, które zwracają jedną wartość wyliczoną
na podstawie wielu wierszy.
Wszystkie funkcje grupowe ignorują wiersze zawierające wartość NULL w
kolumnie, na której działają.
AVG
avg ([DISTINCT] wyrażenie) – funkcja oblicza wartość średnią wyrażenia dla
wszystkich wierszy. W poniższym przykładzie jest to średnia zarobków
pracowników.
W powyższym przykładzie gdybym dodał przed słowem „salary” słowo
„distinct”, średnia zostałaby wyliczona na podstawie listy zarobków
pobranej z tabeli, ale bez powtórzeń wartości. Wynik w efekcie byłby
inny. Ta sama zasada stosuje się również do innych funkcji
agregujących.
COUNT
count ([DISTINCT] {wyrażenie|* }) – funkcja zwraca ilość wierszy dla których
wyrażenie jest różne od NULL. Użycie gwiazdki powoduje zliczenie
wszystkich wierszy w tabeli. W tym wypadku została wyświetlona ilość
pracowników.
MAX
max (wyrażenie), min(wyrażenie) – funkcje obliczają maksymalną i minimalną
wartość wyrażenia, wartość wyrażenia może być liczbą, ciągiem
znaków lub datą. W poniższym przykładzie zostały wyświetlone
najwyższa i najniższa płaca.
SUM
sum ([DISTINCT] wyrażenie) – funkcja oblicza sumę wartości wyrażeń dla
wszystkich wierszy.
Użycie klauzuli DISTINCT w powyższych funkcjach powoduje, że wiersze, dla
których agregowane wyrażenie się powtarza, agregacji podlegają tylko jeden
raz.
Przykładowo jeśli do przykładu pokazanego powyżej dodamy „distinct” przed
salary,
otrzymamy sumę pensji bez powtórek – tj. jeśli pensję 2 osób będą takie
same – wartość ich pensji policzona zostanie tylko raz:
GRUPOWANIE
group by
Grupowanie polega na podzieleniu zbioru wierszy na grupy, które mają
pewną wspólną cechę. Grupowania dokonuje się w celu zastosowania funkcji
agregujących nie w stosunku do całego zbioru wierszy, ale do
poszczególnych grup wierszy.
W celu zgrupowania rekordów należy dodać nową klauzulę GROUP BY wraz
z wyspecyfikowaniem kolumny lub wyrażenia, według którego mają być
pogrupowane wiersze. Na liście klauzuli SELECT mogą się znaleźć
tylko kolumny i wyrażenia, według których zapytanie jest grupowane,
oraz wywołania funkcji agregujących.
Powyższe zapytanie najpierw podzieliło pracowników na grupy wg lokalizacji
w której pracują, a następnie w obrębie tych grup wyliczyło ich
populację.
Przed dokonaniem grupowania można zastosować klauzulę WHERE, która
wybierze tylko część wierszy z tabeli. Klauzula WHERE wykonuje się przed
grupowaniem, a zatem nie można w tej klauzuli sprecyzować warunku
zawierającego funkcje grupowe. Aby taki warunek zawrzeć w zapytaniu
należy zastosować dodatkową klauzulę HAVING wraz z odpowiednim
warunkiem. Jest ona odpowiednikiem klauzuli WHERE, tylko, że wykonuje
się ona po procesie grupowania. W poniższym przykładzie najpierw
wybrałem numery lokalizacji w których id managera nie jest puste.
W drugim pogrupowane numery lokalizacji oraz ilość departamentów w
danej lokalizacji ale tylko te w których jest przydzielony manager.
W trzecim tylko te lokalizacje w których poza tym że jest przydzielony
manager, ilość departamentów jest większa niż 1.
Rollup
Dodanie rollup do group by spowoduje wyświetlenie podsumowania dla
każdej grupy. Poniżej przykład grupowania bez użycia rollup. Możemy
wyświetlić sumę wypłat w danym departamencie dla ludzi podległych pod
danego managera. Patrz przykład poniżej:
Plik z chomika:
lucas30
Inne pliki z tego folderu:
Zwiększamy ostrość zdjęcia z Gimp-ie - poradnik PDF ebook.pdf
(1384 KB)
programowanie w borland delphi [ PL ].rar
(14739 KB)
Visual.C .6.dla.kazdego.pdf
(80315 KB)
R. Jarża - Turbo Pascal - szkoła programowania.pdf
(76422 KB)
Perl.Czarna_ksiega_-_Holzner_Steven UP by qperty.pdf
(1480 KB)
Inne foldery tego chomika:
₪ Elektronika
★ Programy do elektroniki
Alldata 10.10
C_AVR_EP Kurs C AVR Elektronika praktyczna
Clipart OFFICE
Zgłoś jeśli
naruszono regulamin