Zaawansowane zapytania SQL: Techniki i przykłady

kajodata.com 4 miesięcy temu

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, iż 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 wszystkich działu.

SELECT department_id, SUM(sales) AS total_sales FROM employees GROUP BY department_id;

Opanuj SQL z moim kursem.

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, iż 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

  1. Podzapytania (subqueries): Filtrowanie danych na podstawie wyników innych zapytań.
  2. Złączenia (JOIN): Łączenie danych z wielu tabel.
  3. Agregacje: Wykonywanie obliczeń na zbiorach danych.
  4. Funkcje okna (window functions): Operacje na zestawach wierszy powiązanych z bieżącym wierszem.
  5. CTE (Common Table Expressions): Tymczasowe zestawy wyników ułatwiające organizację zapytań.
  6. Zapytania dynamiczne: Tworzenie zapytań SQL w locie.

Podsumowanie

Zaawansowane techniki SQL są niezbędne dla wszystkich 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ę, iż ten artykuł pomógł Ci zrozumieć te zaawansowane techniki i zachęcił do ich stosowania w codziennej pracy.

Inne interesujące 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ż, iż 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

Idź do oryginalnego materiału