Chuyển đến nội dung chính

Làm chủ SQL ROUND: Xử lý độ chính xác trong phân tích dữ liệu

Tìm hiểu cách sử dụng hàm ROUND trong SQL trong hướng dẫn này. Nội dung bao gồm cách triển khai hàm ROUND trong Oracle, MySQL, PostgreSQL và SQL Server.
· 10 phút đọc

Khám phá cùng AI

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.

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.

image8.jpg

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.

image7.jpg

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.

image16.jpg

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.

image3.jpg

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.

image14.jpg

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.

image9.jpg

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.

image10.jpg

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.

image6.jpg

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.

image4.jpg

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:

image2.jpg

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.

image5.jpg

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:

image15.jpg

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.

image13.jpg

Đâ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:

image11.jpg

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:

image1.jpg

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!

Laiba Siddiqui

Tác giả

Laiba Siddiqui

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ọ.

Chủ đề

Liên quan