Jak działa FLOOR w języku SQL? Przykłady zastosowania

Jak działa FLOOR w języku SQL? Przykłady zastosowania

Jeśli kiedykolwiek pracowałem z liczbami w SQL, na pewno zetknąłem się z potrzebą ich zaokrąglania. Jedną z najlepszych funkcji, jakie oferuje SQL do zaokrąglania w dół, jest FLOOR(). Dziś przyjrzymy się temu, jak działa ta funkcja, dlaczego warto jej używać oraz jakie są jej praktyczne zastosowania.

Co to jest funkcja FLOOR w SQL?

Funkcja FLOOR() w SQL to wbudowana funkcja matematyczna, która zaokrągla liczbę w dół do najbliższej wartości całkowitej. Działa na liczbach zmiennoprzecinkowych i zwraca wartość całkowitą mniejszą lub równą podanej liczbie.

Składnia funkcji FLOOR()

Składnia funkcji FLOOR() jest bardzo prosta:

FLOOR(liczba)

Gdzie:

  • liczba – dowolna wartość numeryczna (może być liczbą zmiennoprzecinkową lub całkowitą).

Jak działa funkcja FLOOR? Przykłady

Najprościej zrozumieć działanie funkcji FLOOR() poprzez przykłady. Spójrzmy na kilka scenariuszy.

Przykład 1: Podstawowe działanie FLOOR

SELECT FLOOR(12.7) AS wynik;

Wynik:

wynik
12

Jak widać, mimo że liczba 12.7 jest bliższa 13, funkcja FLOOR() zawsze zaokrągla w dół.

Przykład 2: FLOOR dla liczby ujemnej

SELECT FLOOR(-5.3) AS wynik;

Wynik:

wynik
-6

W przypadku liczb ujemnych FLOOR() również zaokrągla w dół, czyli w kierunku bardziej ujemnym.

Przykład 3: FLOOR dla liczby całkowitej

SELECT FLOOR(10) AS wynik;

Wynik:

wynik
10

Jeśli podam już liczbę całkowitą, funkcja FLOOR() nie zmienia jej wartości.

Praktyczne zastosowania funkcji FLOOR w SQL

1. Grupowanie danych w przedziały

Często używam FLOOR(), gdy chcę podzielić wartości na przedziały. Na przykład, jeśli mam ceny produktów i chcę je grupować w przedziały co 10 zł:

SELECT FLOOR(price / 10) * 10 AS przedzial_cenowy, COUNT(*) AS liczba_produktow
FROM products
GROUP BY FLOOR(price / 10) * 10;

To pozwala stworzyć grupy cenowe np. 0-9, 10-19, 20-29 itd.

2. Generowanie indeksów do paginacji

Podczas stronicowania wyników w tabelach SQL czasem muszę określić numer strony, na której znajduje się dany rekord. Tu właśnie przydaje się FLOOR():

SELECT id, name, FLOOR((ROW_NUMBER() OVER(ORDER BY id) - 1) / 10) + 1 AS numer_strony
FROM users;

Dzięki temu mogę przypisać każdemu rekordowi odpowiedni numer strony.

3. Obliczanie godzin zamiast minut

Jeśli mam zapisane wartości czasu w minutach i chcę otrzymać liczbę pełnych godzin, mogę wykorzystać funkcję FLOOR():

SELECT FLOOR(minutes / 60) AS godziny FROM czas_pracy;

To pozwala mi na szybkie obliczenie ilości przepracowanych godzin.

Różnice między FLOOR a CEIL oraz ROUND

Istnieją również inne funkcje zaokrąglające w SQL, które warto znać:

  • CEIL() – zaokrągla w górę, czyli zawsze do najbliższej większej wartości całkowitej.
  • ROUND() – zaokrągla według standardowych zasad matematycznych (do najbliższej liczby całkowitej).

Przykład porównawczy:

SELECT FLOOR(4.8), CEIL(4.8), ROUND(4.8);

Wynik:

FLOOR(4.8) CEIL(4.8) ROUND(4.8)
4 5 5

Podsumowanie

Funkcja FLOOR() w SQL to potężne narzędzie do zaokrąglania liczb w dół, które znajduje szerokie zastosowanie w analizie danych, paginacji wyników, a nawet w obliczeniach pracy z czasem. Mam nadzieję, że teraz działanie tej funkcji jest dla mnie jasne i będę mógł ją efektywnie wykorzystywać w swoich zapytaniach SQL.

 

Inny ciekawy artykuł:

Jak działa CEIL w języku SQL? Przykłady zastosowania

KajoDataSpace