Проблем:
Искате да закръглите число надолу до най-близкото цяло число.
Пример:
Нашата база данни има таблица с име служител с данни в следните колони:id
, first_name
, last_name
и hours_worked
(за текущия месец).
id | first_name | фамилно_име | отработени_часове |
---|---|---|---|
1 | Алан | Уотсън | 95 |
2 | Лиза | Черно | 225 |
3 | Лора | Уилямс | 104 |
Нека покажем името и фамилията на всеки служител заедно с броя на дните, които е работил. Тъй като таблицата показва само броя на отработените часове, а не дните, трябва сами да изчислим тази стойност.
За този проблем ще приемем, че всеки служител има стандартен осемчасов работен ден без нередности. Следователно броят на отработените дни е броят на часовете, разделен на осем.
Решение:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
Заявката връща името и фамилията на всеки служител и броя на дните, които е работил този месец.
фамилно_име | first_name | работни дни |
---|---|---|
Уотсън | Алан | 11 |
Черно | Лиза | 28 |
Уилямс | Лора | 13 |
Дискусия:
Подовата настилка е проста математическа операция, която взема число и го закръгля до най-близкото цяло число. Например етажът от 5 е 5, докато подът на 5.1 също е 5. Като друг пример, етажът на 4.9 е 4.
В SQL използваме функцията FLOOR. Необходимо е числото да се закръгли и връща най-близкото цяло число, което е по-малко или равно на него. В нашия пример броят на отработените дни трябва да бъде цяло число, а не число с плаваща запетая. По този начин използвахме (FLOOR(hours_worked/8)
).