SQL ROUND là gì?
Hàm ROUND là một công cụ cơ bản giúp điều chỉnh độ chính xác của dữ liệu số trong SQL. Nó làm tròn giá trị đến số chữ số thập phân được chỉ định và đơn giản hóa dữ liệu cho việc phân tích.
Ví dụ, với SQL ROUND, bạn có thể đổi một số như 3.14159 thành 3.14 bằng cách làm tròn đến hai chữ số thập phân. Điều này hữu ích khi không cần độ chính xác tuyệt đối và các con số đã làm tròn là đủ để diễn giải.
Giờ bạn đã biết SQL ROUND là gì, hãy xem cách triển khai nó trong các hệ quản trị cơ sở dữ liệu khác nhau.
Cú pháp ROUND
Hàm ROUND khá phổ biến, nhưng cú pháp không đồng nhất trên mọi cơ sở dữ liệu. Dưới đây là sự khác nhau:
Cú pháp trong Oracle, MySQL và PostgreSQL
Trong các cơ sở dữ liệu này, ROUND tuân theo định dạng hai tham số đơn giản:
ROUND(number, decimal_places)
Trong đó:
- Input là số bạn muốn làm tròn.
- Decimals chỉ số chữ số thập phân cần làm tròn đến.
Cú pháp trong SQL Server
Tuy nhiên, SQL Server thêm một điểm khác biệt—nó có tham số thứ ba tùy chọn gọi là function:
ROUND(number, decimal_places [, function])
Trong đó:
- Hai tham số đầu, input và decimals, hoạt động giống như ở các cơ sở dữ liệu khác.
- Tham số function tùy chọn quy định hướng làm tròn trong một số điều kiện nhất định.
Khác biệt cú pháp này có vẻ nhỏ, nhưng rất quan trọng vì nó giúp bạn áp dụng đúng hàm ROUND bất kể môi trường cơ sở dữ liệu bạn đang làm việc.
Các tham số của hàm SQL ROUND
Hàm ROUND dùng ba tham số chính—input, decimals và operation. Hiểu rõ các tham số này giúp bạn sử dụng hiệu quả hàm trong các cơ sở dữ liệu SQL.
Tham số Input
Input là số bạn muốn làm tròn. Nó có thể là một số trực tiếp, một cột trong cơ sở dữ liệu hoặc kết quả của một biểu thức.
Tham số Decimal
Tham số decimal kiểm soát số chữ số thập phân bạn làm tròn input đến. Số dương tại đây sẽ làm tròn đến từng ấy chữ số thập phân.
Tham số Function
Tham số function là tùy chọn. Nó quyết định hướng làm tròn cho các giá trị đúng giữa hai số. Mặc định, giá trị của nó là 0. Bất kỳ giá trị nào khác sẽ khiến hàm cắt bỏ phần thập phân (truncate) mà không làm tròn.
Những tham số này giúp việc làm tròn số trở nên chính xác và có kiểm soát.
Sử dụng hàm SQL ROUND trong các hệ quản trị cơ sở dữ liệu
Bạn có thể dùng ROUND trên nhiều hệ quản trị cơ sở dữ liệu SQL. Tuy nhiên, tùy từng hệ, cú pháp và hành vi có thể hơi khác nhau.
Dưới đây là cách dùng trong một số hệ phổ biến:
Triển khai trong Oracle
Hàm ROUND trong Oracle hoạt động với dữ liệu số và giá trị ngày. Khi áp dụng cho số, nó làm tròn giá trị đến chữ số thập phân được chỉ định.
Với giá trị ngày, ROUND có thể điều chỉnh một ngày đến ngày, tháng, năm gần nhất, v.v., tùy theo định dạng chỉ định.
Dưới đây là ví dụ cách hoạt động trong Oracle:
Giả sử bạn có bảng PRODUCTS sau.

Giờ, nếu bạn muốn làm tròn cột standard_cost đến một chữ số thập phân, bạn sẽ truy vấn như sau.
SELECT Round(STANDARD_COST, 1)
FROM PRODUCTS
Đây là cách chi phí sau khi làm tròn sẽ trông như thế nào.

Triển khai trong MySQL
Trong MySQL, ROUND hoạt động tương tự để làm tròn số đến độ chính xác chỉ định.
Ví dụ hoạt động như sau:
Giả sử bạn có bảng purchase_details sau.

Giờ, nếu bạn muốn làm tròn cột Paid_amount đến hai chữ số thập phân, bạn sẽ truy vấn như sau.
SELECT Round(Paid_amount, 2)
AS Result
FROM purchase_details
Đây là cách số tiền sau khi làm tròn sẽ trông như thế nào.

Triển khai trong PostgreSQL
PostgreSQL cũng triển khai ROUND tương tự. Ví dụ sử dụng như sau:
Giả sử bạn có bảng reviews sau.

Giờ, nếu bạn muốn làm tròn cột imdb_score đến 0 chữ số thập phân, bạn sẽ truy vấn như sau.
SELECT Round(imdb_score, 0)
AS Result
FROM cinema.reviews
Đây là cách điểm đánh giá phim sau khi làm tròn sẽ trông như thế nào.

Triển khai trong SQL Server
Trong Microsoft SQL Server, ROUND hoạt động tương tự Oracle khi xử lý giá trị số.
Nhưng một điểm độc đáo của SQL Server là tham số thứ ba—function—cho phép người dùng chỉ định muốn làm tròn số (function = 0 hoặc bỏ qua) hay cắt bỏ phần thập phân (function = 1).
Ví dụ hàm ROUND hoạt động trong SQL Server:
Giả sử bạn có bảng order_items sau.

Giờ, nếu bạn muốn làm tròn cột list_price đến một chữ số thập phân, bạn sẽ truy vấn như sau.
SELECT Round(list_price, 1,0)
AS Result
FROM sales.order_items
Đây là cách giá sau khi làm tròn sẽ trông như thế nào.

Triển khai thực tế
Giờ bạn đã biết các tham số, đã đến lúc triển khai hàm ROUND trong thực tiễn. Hãy xem cách làm điều đó với số và ngày trong phân tích dữ liệu.
ROUND với số
Giả sử bạn có một bảng tên orderDetails, và có một cột giá với nhiều chữ số thập phân.

Giờ, nếu bạn muốn làm tròn cột Price đến một chữ số thập phân, bạn sẽ truy vấn như sau.
SELECT Round(Price, 1)
AS Result
FROM orderDetails
Truy vấn này làm tròn mỗi giá trong bảng đến một chữ số thập phân.
Và kết quả sẽ trông như sau:

ROUND với ngày
Trong SQL, bạn có thể làm tròn giá trị ngày đến một thành phần cụ thể như năm, tháng, giờ hoặc phút.
Giả sử bạn có một bảng tên orders.

Giờ, nếu bạn muốn làm tròn cột order_date đến năm gần nhất, bạn sẽ truy vấn như sau:
SELECT YEAR(order_date)
AS ROUNDED_DATE
FROM sales.orders
Truy vấn này làm tròn mỗi ngày trong cột đến năm gần nhất.
Và kết quả sẽ trông như sau:

Kỹ thuật nâng cao với SQL ROUND
Ngoài làm tròn cơ bản, hàm ROUND trong SQL còn được dùng trong các tình huống nâng cao như:
- Làm tròn lên trong SQL
- Làm tròn xuống trong SQL
- Làm tròn theo các khoảng cụ thể
Cách hoạt động của từng trường hợp:
SQL ROUND Up và ROUND Down
Trong khi ROUND làm tròn đến giá trị gần nhất, bạn có thể đạt được hướng làm tròn cụ thể bằng các hàm CEIL và FLOOR.
Hàm CEIL làm tròn bất kỳ giá trị thập phân lên số nguyên kế tiếp. Ví dụ, hãy xem:
Bạn có một bảng tên reviews.

Đây là cách bạn áp dụng hàm CEIL cho cột user_score.
Select CEIL(user_score)
FROM reviews
Đây là kết quả bạn sẽ nhận được:

Khác với CEIL, FLOOR làm tròn bất kỳ giá trị thập phân xuống số nguyên gần nhất. Ví dụ, hãy xem trường hợp sau.
Nếu bạn áp dụng FLOOR cho bảng reviews ở trên, bạn sẽ truy vấn như sau:
Select FLOOR(user_score)
FROM reviews
Đây là kết quả bạn sẽ nhận được:

Làm tròn theo các khoảng cụ thể
Đôi khi, bạn cần làm tròn số theo các khoảng như gần nhất của 5, 10 hoặc 100. Để làm điều này, bạn nên kết hợp ROUND với phép chia và nhân.
Giả sử bạn cần làm tròn một số hoặc cột đến bội số 10 gần nhất, bạn sẽ viết truy vấn sau:
SELECT Round(number / 10) * 10
FROM table_name
Kỹ thuật này hữu ích trong quản lý hàng tồn hoặc phân tích thống kê, nơi dữ liệu được nhóm theo các khoảng cụ thể sẽ hợp lý hơn.
Các hàm tương tự SQL ROUND
Bên cạnh ROUND, có một số hàm khác trong SQL để xử lý việc làm tròn và cắt bỏ phần thập phân.
Hàm CEIL
Hàm CEILING, hay CEIL, làm tròn một số lên đến số nguyên gần nhất hoặc đến độ chính xác được chỉ định. CEILING luôn làm tròn lên, khác với ROUND vốn làm tròn đến giá trị gần nhất.
Ví dụ: CEILING(2.3) trả về 3.
Hàm này đặc biệt hữu ích khi bạn cần đảm bảo giá trị sau làm tròn không nhỏ hơn số ban đầu.
Hàm FLOOR
Hàm FLOOR làm tròn một số xuống số nguyên gần nhất hoặc đến độ chính xác được chỉ định.
Ví dụ: FLOOR(2.7) trả về 2.
Hàm này đảm bảo số sau khi làm tròn không lớn hơn số ban đầu.
Hàm TRUNC
Hàm TRUNC (truncate) loại bỏ phần thập phân của một số, tương đương làm tròn về phía 0.
Ví dụ: TRUNC(2.9) sẽ trả về 2, và TRUNC(-2.9) sẽ trả về -2.
TRUNC loại bỏ phần phân số của một số mà không nhất thiết phải làm tròn nó.
Nói ngắn gọn, mỗi hàm—CEILING, FLOOR và TRUNC—có mục đích riêng trong thao tác dữ liệu, bổ trợ cho hàm ROUND.
Với các hàm này, bạn có thể xử lý nhiều tình huống làm tròn với độ chính xác cao và phù hợp hơn với ngữ cảnh dữ liệu. Nếu muốn học thêm các kỹ thuật SQL tương tự, hãy xem cheat sheet và bắt đầu luyện tập.
Kết luận
Làm đúng dữ liệu là vô cùng quan trọng, và hàm ROUND trong SQL là cách tuyệt vời để đảm bảo các con số của bạn dễ làm việc. Nó giúp bạn làm tròn số đến vị trí thập phân mong muốn và khiến dữ liệu của bạn dễ hiểu hơn.
Nếu bạn cần làm tròn theo cách cụ thể, bạn còn có các hàm khác như CEIL, FLOOR và TRUNC để hỗ trợ.
Dù bạn mới bắt đầu với vai trò thực hành dữ liệu cấp junior hay muốn trau dồi kỹ năng, các khóa như SQL Fundamentals và Intermediate SQL sẽ hữu ích.
Giờ thì đã đến lúc đưa vào thực hành. Chúc bạn thành công!
Tôi là một chiến lược gia nội dung, yêu thích việc đơn giản hóa các chủ đề phức tạp. Tôi đã giúp các công ty như Splunk, Hackernoon và Tiiny Host tạo nội dung hấp dẫn và giàu thông tin cho khán giả của họ.

Khi làm việc với dữ liệu, độ chính xác rất quan trọng. Nhưng với vai trò nhà khoa học dữ liệu hoặc kỹ sư dữ liệu, bạn phải xử lý những phức tạp của việc chuyển đổi dữ liệu thành thông tin hằng ngày.
Vì luôn có chỗ để mài giũa bộ kỹ năng, bạn có thể nâng cao năng lực và sự tự tin trong xử lý dữ liệu bằng cách sử dụng hàm `ROUND` trong SQL.
Hướng dẫn này nhằm khám phá cách một hàm `ROUND` trong SQL có thể tinh chỉnh độ chính xác dữ liệu trong phân tích của bạn.