Możesz używać podstawowych zapytań SQL do pobierania danych z bazy danych, ale często nie zapewnia ona wystarczającej inteligencji do spełnienia wymagań biznesowych. SQL umożliwia również grupowanie wyników zapytań na podstawie atrybutów na poziomie wiersza w celu zastosowania funkcji agregujących przy użyciu klauzuli GROUP BY. Rozważmy na przykład tabelę danych zamówienia składającą się z poniższych atrybutów:
- OrderID - wartość liczbowa jednoznacznie identyfikująca każde zamówienie. To pole jest kluczem podstawowym dla bazy danych.
- Sprzedawca - wartość tekstowa zawierająca nazwisko sprzedawcy, który sprzedał produkty. To pole jest obcym kluczem do innej tabeli zawierającej informacje o personelu.
- Identyfikator klienta - wartość liczbowa odpowiadająca numerowi konta klienta. To pole jest również kluczem obcym, odwołującym się do tabeli zawierającej informacje o koncie klienta.
- Dochód - wartość liczbowa odpowiadająca wartości sprzedaży w dolarach.
Kiedy przychodzi czas na przeprowadzenie oceny wydajności dla sprzedawców, tabela Zamówienia zawiera cenne informacje, które mogą zostać wykorzystane do tej oceny. Oceniając Jima, możesz na przykład napisać proste zapytanie, które pobiera wszystkie rekordy sprzedaży Jima:
WYBIERZ *
Z zamówień
GDZIE Sprzedawca, jak "Jim"
Pobrałoby to wszystkie rekordy z bazy danych odpowiadającej sprzedaży dokonanej przez Jima: OrderID SalesID CustomerID Revenue
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
Możesz przejrzeć te informacje i wykonać pewne ręczne obliczenia, aby wymyślić statystyki skuteczności, ale byłoby to żmudne zadanie, które musiałbyś powtórzyć dla każdego sprzedawcy w firmie. Zamiast tego możesz zastąpić tę pracę jednym zapytaniem GROUP BY, które oblicza statystyki dla każdego sprzedawcy w firmie. Wystarczy napisać zapytanie i określić, że baza danych powinna grupować wyniki na podstawie pola Sprzedawcy. Następnie możesz użyć dowolnej agregującej funkcji SQL, aby wykonać obliczenia wyników. Oto przykład. Jeśli wykonałeś następującą instrukcję SQL: SELECT Sprzedawca, SUMA (przychód) AS "Łącznie", MIN (przychód) AS "Najmniejszy", MAX (przychód) AS "Największy", AVG (przychód) AS "Średnia", COUNT (przychód) AS "Numer"
Z zamówień
GROUP BY Salesperson
Otrzymasz następujące wyniki: Sprzedawca Całkowita najmniejsza, największa, największa liczba
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Jak widać, ta potężna funkcja umożliwia generowanie małych raportów z kwerendy SQL, dostarczając cennej informacji biznesowej menedżerowi przeprowadzającemu recenzje wydajności. Klauzula GROUP BY jest często wykorzystywana w bazach danych do tego celu i jest cennym narzędziem w worku trików DBA.