Poznaj zaawansowane techniki tworzenia zapytań SQL. Praktyczne przykłady i zastosowania.
SQL (Structured Query Language) to potężne narzędzie, które pozwala na zaawansowaną manipulację i analizę danych w bazach danych. Jako analityk danych, codziennie korzystam z SQL do wydobywania, przekształcania i analizowania danych. W tym artykule przedstawię różne techniki i przykłady zaawansowanych zapytań SQL, które pomogą Ci lepiej zrozumieć, jak efektywnie pracować z danymi.
Wstęp
Podstawy SQL, takie jak SELECT, INSERT, UPDATE i DELETE, są niezbędne, ale zaawansowane techniki pozwalają na wykonywanie bardziej skomplikowanych operacji na danych. Omówię takie koncepcje jak podzapytania, złączenia (JOIN), agregacje, funkcje okna, CTE (Common Table Expressions) i zapytania dynamiczne. Każda z tych technik będzie przedstawiona z konkretnymi przykładami, które można zastosować w codziennej pracy.
Podzapytania
Opis
Podzapytania (subqueries) to zapytania zagnieżdżone w innych zapytaniach. Pozwalają na wykonywanie bardziej złożonych operacji, takich jak filtrowanie danych na podstawie wyników innych zapytań.
Przykład
Załóżmy, że mamy tabelę employees i chcemy znaleźć pracowników, którzy zarabiają więcej niż średnia pensja w całej firmie.
SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
Złączenia (JOIN)
Opis
Złączenia pozwalają na łączenie danych z dwóch lub więcej tabel na podstawie powiązanych kolumn. Najczęściej używane złączenia to INNER JOIN, LEFT JOIN, RIGHT JOIN i FULL JOIN.
Przykład
Mamy dwie tabele: employees i departments. Chcemy wyświetlić imiona pracowników wraz z nazwami ich działów.
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
Agregacje
Opis
Funkcje agregujące, takie jak SUM, AVG, COUNT, MAX i MIN, pozwalają na wykonywanie obliczeń na zbiorach danych.
Przykład
Chcemy obliczyć całkowitą sprzedaż dla każdego działu.
SELECT department_id, SUM(sales) AS total_sales
FROM employees
GROUP BY department_id;
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Funkcje okna
Opis
Funkcje okna (window functions) pozwalają na wykonywanie operacji na zestawach wierszy, które są powiązane z bieżącym wierszem.
Przykład
Chcemy obliczyć średnią pensję w każdym dziale, ale chcemy, aby wynik zawierał wszystkie wiersze, a nie tylko zagregowane.
SELECT name, department_id, salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_department_salary
FROM employees;
Common Table Expressions (CTE)
Opis
CTE to tymczasowe zestawy wyników, które można odwoływać w kolejnych zapytaniach. Ułatwiają one organizację i czytelność złożonych zapytań.
Przykład
Chcemy znaleźć najlepszych sprzedawców w każdej kategorii.
WITH SalesRank AS (
SELECT name, category_id, sales,
RANK() OVER (PARTITION BY category_id ORDER BY sales DESC) AS rank
FROM employees
)
SELECT name, category_id, sales
FROM SalesRank
WHERE rank = 1;
Zapytania dynamiczne
Opis
Zapytania dynamiczne pozwalają na tworzenie zapytań SQL w locie, co jest przydatne w sytuacjach, gdy zapytania muszą być dostosowane na podstawie zmiennych wejściowych.
Przykład
Załóżmy, że chcemy dynamicznie zmieniać kolumnę, według której sortujemy wyniki.
DECLARE @sortColumn NVARCHAR(50) = 'salary';
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SELECT name, salary, department_id FROM employees ORDER BY ' + @sortColumn;
EXEC sp_executesql @sql;
Lista technik zaawansowanych zapytań SQL
- Podzapytania (subqueries): Filtrowanie danych na podstawie wyników innych zapytań.
- Złączenia (JOIN): Łączenie danych z wielu tabel.
- Agregacje: Wykonywanie obliczeń na zbiorach danych.
- Funkcje okna (window functions): Operacje na zestawach wierszy powiązanych z bieżącym wierszem.
- CTE (Common Table Expressions): Tymczasowe zestawy wyników ułatwiające organizację zapytań.
- Zapytania dynamiczne: Tworzenie zapytań SQL w locie.
Podsumowanie
Zaawansowane techniki SQL są niezbędne dla każdego analityka danych, który chce efektywnie przetwarzać i analizować duże zbiory danych. Znajomość takich koncepcji jak podzapytania, złączenia, agregacje, funkcje okna, CTE i zapytania dynamiczne pozwala na wykonywanie bardziej skomplikowanych operacji i wydobywanie cennych informacji z danych. Mam nadzieję, że ten artykuł pomógł Ci zrozumieć te zaawansowane techniki i zachęcił do ich stosowania w codziennej pracy.
Inne ciekawe artykuły:
- Funkcje wyszukiwania i odwołań w Excelu: Jak efektywnie korzystać z VLOOKUP, HLOOKUP i XLOOKUP
- Podstawy Pythona: Wprowadzenie dla początkujących
- Podstawy SQL: Jak zacząć swoją przygodę z bazami danych
Wolisz czytać po angielsku? No problem!
To tyle w tym temacie. Analizujcie w pokoju!
Podobał Ci się ten artykuł 🙂?
Podziel się nim w Social Mediach 📱
>>> udostępnij go na LinkedIn i pokaż, że codziennie uczysz się czegoś nowego
>>> wrzuć go na Facebooka, to się może przydać któremuś z Twoich znajomych
>>> Przypnij sobie tą stronkę to zakładek, może się przydać w przyszłości
Wolisz oglądać 📺 niż czytać – nie ma problemu
>>> Obserwuj i oglądaj KajoData na YouTube