Zacznij terazZacznij za darmo

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

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Przekształć teorię w praktykę dzięki jednemu z naszych interaktywnych ćwiczeń

Rozpocznij ćwiczenie