Zaawansowane zapytania SQL: Techniki i przykłady

24 lipca 2024

PL Zaawansowane zapytania SQL_ Techniki i przykłady

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;

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

  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 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:

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

Ja Ci ją z przyjemnością wyślę. Za darmo. Bez spamu.

Poradnik Początkującego Analityka

Video - jak szukać pracy w IT

Regularne dawki darmowej wiedzy, bez spamu.