Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Làm thế nào để đánh số tầng trong SQL

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_namehours_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) ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng khắc phục sự cố Không tìm thấy lỗi

  2. Hình ảnh thời gian chạy tùy chỉnh trong Java 9 là gì?

  3. Cách hiệu quả nhất để cắt giảm thời gian khỏi datetime là gì?

  4. Di chuyển bảng hiện có từ nhóm tệp chính sang nhóm tệp khác

  5. Trình điều khiển Apache Spark ODBC