
Funkcja MIN() w SQL to jedno z podstawowych narzędzi agregujących, które pozwala znaleźć najmniejszą wartość w zbiorze danych. Często wykorzystuję ją w zapytaniach, gdy potrzebuję sprawdzić minimalną wartość w kolumnie, np. najniższą cenę produktu czy najmniejszy wiek użytkownika. W tym artykule przyjrzymy się dokładnie, jak działa MIN() w języku SQL oraz jakie ma zastosowania.
Podstawowa składnia funkcji MIN()
Funkcja MIN() jest bardzo prosta w użyciu. Oto jej ogólna składnia:
SELECT MIN(kolumna) FROM tabela;
Wystarczy podać nazwę kolumny oraz tabeli, a funkcja zwróci najmniejszą wartość w danym zbiorze danych.
Przykłady zastosowania MIN() w SQL
1. Najniższa cena produktu
Jeśli chcę znaleźć najtańszy produkt w tabeli produkty, mogę użyć następującego zapytania:
SELECT MIN(cena) AS najnizsza_cena FROM produkty;
To zapytanie zwróci jedną wartość – minimalną cenę spośród wszystkich dostępnych produktów.
2. Najstarszy użytkownik
Jeśli posiadam tabelę uzytkownicy i chcę znaleźć najstarszego użytkownika na podstawie wieku, mogę użyć:
SELECT MIN(wiek) AS najmlodszy_uzytkownik FROM uzytkownicy;
Wynik będzie wskazywał najmniejszy wiek w tabeli.
Użycie MIN() z klauzulą GROUP BY
Funkcja MIN() świetnie współpracuje z klauzulą GROUP BY, co pozwala na obliczanie minimalnych wartości w grupach danych.
Załóżmy, że mamy tabelę produkty zawierającą produkty z różnych kategorii i chcemy znaleźć najtańszy produkt w każdej kategorii:
SELECT kategoria, MIN(cena) AS najnizsza_cena
FROM produkty
GROUP BY kategoria;
To zapytanie zwróci najniższą cenę dla każdej kategorii produktów. Oto przykładowy wynik:
| Kategoria | Najniższa cena |
|---|---|
| Elektronika | 199.99 |
| Odzież | 49.99 |
| AGD | 129.99 |
MIN() a wartości NULL
Bardzo ważną kwestią, o której muszę wspomnieć, jest sposób działania MIN() w obecności wartości NULL. Funkcja ta pomija wartości NULL, co oznacza, że nie będą one uwzględniane w obliczeniach.
Przykładowo, jeśli tabela uzytkownicy zawiera kolumnę wzrost, w której niektóre wartości są puste:
SELECT MIN(wzrost) AS najmniejszy_wzrost FROM uzytkownicy;
To zapytanie zwróci najmniejszą wartość spośród danych liczbowych, ignorując rekordy, gdzie wzrost jest NULL.
Różnice między MIN() a LIMIT
Często spotykam się z pytaniem, czy funkcji MIN() nie można zastąpić instrukcją ORDER BY i LIMIT. Chociaż oba podejścia mogą dawać podobne wyniki, różnią się w zastosowaniu.
Jeśli chcę znaleźć najniższą cenę produktu przy użyciu ORDER BY, mogę to zrobić tak:
SELECT cena FROM produkty ORDER BY cena ASC LIMIT 1;
Różnica polega na tym, że funkcja MIN() zwraca jedną wartość w postaci agregatu, podczas gdy zapytanie z ORDER BY i LIMIT zwraca konkretny rekord.
Podsumowanie
Funkcja MIN() w SQL jest niezwykle użyteczna w analizie danych, pozwalając na szybkie i efektywne znalezienie najmniejszych wartości w zbiorze. Można ją używać zarówno w prostych zapytaniach, jak i w połączeniu z klauzulą GROUP BY, aby analizować dane w różnych grupach. Niezależnie od kontekstu, warto pamiętać, że MIN() ignoruje wartości NULL, co może mieć wpływ na końcowy wynik.
Teraz, gdy już wiesz, jak działa MIN() w języku SQL, możesz śmiało stosować tę funkcję w swoich zapytaniach!
Inny ciekawy artykuł:
Jak działa AVG w języku SQL? Przykłady zastosowania
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ń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

