Problém:
Chcete zaokrouhlit číslo dolů na nejbližší celé číslo.
Příklad:
Naše databáze obsahuje tabulku s názvem zaměstnanec s údaji v následujících sloupcích:id
, first_name
, last_name
a hours_worked
(pro aktuální měsíc).
id | first_name | last_name | odpracovaných hodin |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Černá | 225 |
3 | Laura | Williams | 104 |
Ukažme jméno a příjmení každého zaměstnance spolu s počtem odpracovaných dní. Vzhledem k tomu, že tabulka ukazuje pouze počet odpracovaných hodin a nikoli dnů, musíme si tuto hodnotu spočítat sami.
Pro tento problém budeme předpokládat, že každý zaměstnanec má standardní osmihodinový pracovní den bez nesrovnalostí. Počet odpracovaných dní je tedy počet hodin dělený osmi.
Řešení:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
Dotaz vrátí jméno a příjmení každého zaměstnance a počet dní, které tento měsíc odpracovali.
last_name | first_name | odpracovaných dnů |
---|---|---|
Watson | Alan | 11 |
Černá | Lisa | 28 |
Williams | Laura | 13 |
Diskuse:
Podlaha je jednoduchá matematická operace, která vezme číslo a zaokrouhlí ho dolů na nejbližší celé číslo. Například podlaha 5 je sama o sobě 5, zatímco podlaha 5,1 je také 5. Jako další příklad je patro 4,9 4.
V SQL používáme funkci FLOOR. Číslo se zaokrouhlí a vrátí nejbližší celé číslo, které je mu menší nebo rovno. V našem příkladu musí být počet odpracovaných dnů celé číslo, nikoli číslo s plovoucí desetinnou čárkou. Použili jsme tedy (FLOOR(hours_worked/8)
).