Vấn đề:
Bạn muốn làm tròn một số xuống số nguyên gần nhất.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên là nhân viên với dữ liệu trong các cột sau:id
, first_name
, last_name
và hours_worked
(cho tháng hiện tại).
id | first_name | last_name | hours_worked |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Đen | 225 |
3 | Laura | Williams | 104 |
Hãy hiển thị họ và tên của từng nhân viên cùng với số ngày họ đã làm việc. Vì bảng chỉ hiển thị số giờ làm việc chứ không phải ngày nên chúng tôi phải tự tính toán giá trị này.
Đối với vấn đề này, chúng tôi sẽ giả định rằng mỗi nhân viên có một ngày làm việc tiêu chuẩn là tám giờ và không có bất thường nào. Do đó, số ngày làm việc là số giờ chia cho tám.
Giải pháp:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
Truy vấn trả về họ và tên của từng nhân viên và số ngày họ làm việc trong tháng này.
last_name | first_name | days_worked |
---|---|---|
Watson | Alan | 11 |
Đen | Lisa | 28 |
Williams | Laura | 13 |
Thảo luận:
Flooring là một phép toán đơn giản lấy một số và làm tròn nó xuống số nguyên gần nhất. Ví dụ:bản thân sàn 5 là 5, trong khi sàn 5,1 cũng là 5. Ví dụ khác, sàn 4,9 là 4.
Trong SQL, chúng tôi sử dụng hàm FLOOR. Nó làm tròn số và trả về số nguyên gần nhất nhỏ hơn hoặc bằng nó. Trong ví dụ của chúng tôi, số ngày làm việc phải là số nguyên, không phải số dấu phẩy động. Do đó, chúng tôi đã sử dụng (FLOOR(hours_worked/8)
).