Zapytanie SQL (query) to polecenie wysyłane do bazy danych w języku SQL - najczęściej SELECT, który pobiera dane według zadanych kryteriów. Pełna składnia to sekwencja klauzul: SELECT (które kolumny), FROM (z jakich tabel), WHERE (filtr wierszy), GROUP BY (grupowanie), HAVING (filtr grup), ORDER BY (sortowanie).
Dla analityka biznesowego umiejętność pisania zapytań to niezależność: zamiast czekać trzy dni na raport od zespołu BI, sam sprawdzasz hipotezę w pięć minut. W polskich ogłoszeniach dla BA SQL pojawia się w wymaganiach częściej niż jakiekolwiek inne narzędzie techniczne - zwykle właśnie na poziomie samodzielnych SELECT-ów z JOIN-ami i agregacją.
Przykład z MediFlow - pytanie biznesowe: które przychodnie mają najwyższy odsetek nieodbytych wizyt?
SELECT p.nazwa,
COUNT(*) FILTER (WHERE w.status = 'no_show') * 100.0
/ COUNT(*) AS procent_no_show
FROM wizyty w
JOIN przychodnie p ON p.id = w.przychodnia_id
WHERE w.data_wizyty >= '2026-01-01'
GROUP BY p.nazwa
ORDER BY procent_no_show DESC;
Jedno zapytanie zamiast zlecania raportu - i gotowa podstawa do rozmowy, czemu jedna placówka ma 24% przy średniej sieci 14%.
Częsta pomyłka: zakładanie, że zapytanie wykonuje się w kolejności zapisu. Logicznie baza zaczyna od FROM i WHERE, a SELECT przetwarza prawie na końcu - dlatego alias zdefiniowany w SELECT nie działa w WHERE i początkujący dostają błąd „kolumna nie istnieje". Druga pomyłka: SELECT * na wielomilionowej tabeli produkcyjnej bez filtra. Zapytanie analityka potrafi przyblokować bazę, na której właśnie pracuje rejestracja - na produkcyjnych danych zawsze WHERE, a przy eksploracji zawsze LIMIT.