SQL w skrócie (2)
Kolejnym częstym zadaniem w pracy z bazami danych jest agregacja – czyli zmniejszanie ilości danych przez podział na grupy i podsumowanie każdej z nich.
W SQL służy do tego polecenie GROUP BY. Dzieli ono dane na grupy i stosuje funkcję z instrukcji SELECT do każdej z nich.
Na przykład, aby policzyć liczbę lotów z każdego z dwóch lotnisk wylotu, możesz użyć zapytania:
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin informuje SQL, że wynik ma zawierać jeden wiersz dla każdej unikalnej wartości kolumny origin. Instrukcja SELECT określa wartości, którymi chcesz wypełnić poszczególne kolumny. W tym przypadku zliczamy (COUNT()) każdy wiersz w obrębie każdej grupy.
Można grupować według więcej niż jednej kolumny. Wynikowa tabela będzie wtedy zawierać wiersz dla każdej kombinacji unikalnych wartości w tych kolumnach. Poniższe zapytanie zlicza liczbę lotów z SEA i PDX do każdego lotniska docelowego:
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
Wynik będzie zawierać wiersz dla każdej kombinacji wartości z kolumn origin i dest (czyli wiersz dla każdej pary lotniska wylotu i docelowego). Pojawi się też kolumna z wartością COUNT() dla wszystkich wierszy w każdej grupie.
Pamiętaj, że więcej informacji o SQL znajdziesz tutaj.
Jakie informacje zwróci poniższe zapytanie? Przypomnij sobie, że tabela flights zawiera dane o lotach, które odbyły się z PDX i SEA w latach 2014 i 2015. Zwróć uwagę, że funkcja AVG() oblicza średnią wartość kolumny!
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
To ćwiczenie jest częścią kursu
Podstawy PySpark
Interaktywne ćwiczenie praktyczne
Przekształć teorię w praktykę dzięki jednemu z naszych interaktywnych ćwiczeń
Rozpocznij ćwiczenie