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

Làm thế nào để làm tròn số trung bình đến 2 chữ số thập phân trong PostgreSQL?

PostgreSQL không xác định round(double precision, integer) . Vì lý do @Mike Sherrill 'Cat Recall' giải thích trong các nhận xét, phiên bản vòng có độ chính xác chỉ có sẵn cho numeric .

regress=> SELECT round( float8 '3.1415927', 2 );
ERROR:  function round(double precision, integer) does not exist

regress=> \df *round*
                           List of functions
   Schema   |  Name  | Result data type | Argument data types |  Type  
------------+--------+------------------+---------------------+--------
 pg_catalog | dround | double precision | double precision    | normal
 pg_catalog | round  | double precision | double precision    | normal
 pg_catalog | round  | numeric          | numeric             | normal
 pg_catalog | round  | numeric          | numeric, integer    | normal
(4 rows)

regress=> SELECT round( CAST(float8 '3.1415927' as numeric), 2);
 round 
-------
  3.14
(1 row)

(Trong phần trên, lưu ý rằng float8 chỉ là một bí danh viết tắt của double precision . Bạn có thể thấy rằng PostgreSQL đang mở rộng nó trong đầu ra).

Bạn phải truyền giá trị được làm tròn thành numeric để sử dụng dạng hai đối số của round . Chỉ cần thêm ::numeric đối với kiểu diễn viên viết tắt, như round(val::numeric,2) .

Nếu bạn đang định dạng để hiển thị cho người dùng, không sử dụng round . Sử dụng to_char (xem:các chức năng định dạng kiểu dữ liệu trong sách hướng dẫn), cho phép bạn chỉ định một định dạng và cung cấp cho bạn một text kết quả không bị ảnh hưởng bởi bất kỳ điều gì kỳ lạ mà ngôn ngữ ứng dụng của bạn có thể làm với numeric các giá trị. Ví dụ:

regress=> SELECT to_char(float8 '3.1415927', 'FM999999999.00');
    to_char    
---------------
 3.14
(1 row)

to_char sẽ làm tròn số cho bạn như một phần của định dạng. FM tiền tố nói với to_char mà bạn không muốn có bất kỳ phần đệm nào có khoảng trắng ở đầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phiên bản hạt nhân PostgreSQL so với Linux

  2. Làm cách nào để cập nhật tất cả các cột bằng CHÈN ... BẬT MẶT ...?

  3. Cách tìm tên của một ràng buộc trong PostgreSQL

  4. Một cách mới để cá nhân hóa việc giám sát PostgreSQL của bạn với Prometheus

  5. Giá trị lỗi không tồn tại - postgresql CHÈN VÀO sự cố