
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.