PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara membulatkan rata-rata menjadi 2 tempat desimal di PostgreSQL?

PostgreSQL tidak mendefinisikan round(double precision, integer) . Karena alasan @Mike Sherrill 'Cat Recall' jelaskan di komentar, versi putaran yang membutuhkan presisi hanya tersedia untuk 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)

(Pada contoh di atas, perhatikan bahwa float8 hanyalah sebuah alias singkatan untuk double precision . Anda dapat melihat bahwa PostgreSQL mengembangkannya di output).

Anda harus memberikan nilai yang akan dibulatkan menjadi numeric untuk menggunakan bentuk dua argumen round . Cukup tambahkan ::numeric untuk pemeran singkatan, seperti round(val::numeric,2) .

Jika Anda memformat untuk ditampilkan kepada pengguna, jangan gunakan round . Gunakan to_char (lihat:fungsi pemformatan tipe data dalam manual), yang memungkinkan Anda menentukan format dan memberi Anda text hasil yang tidak terpengaruh oleh keanehan apa pun yang mungkin dilakukan bahasa klien Anda dengan numeric nilai-nilai. Misalnya:

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

to_char akan membulatkan angka untuk Anda sebagai bagian dari pemformatan. FM awalan memberitahu to_char bahwa Anda tidak ingin pengisi apa pun dengan spasi di depan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. docker postgres dengan data awal tidak bertahan selama komit

  2. pgadmin4 :server aplikasi postgresql tidak dapat dihubungi.

  3. Perbedaan Timestamp Dalam Jam untuk PostgreSQL

  4. Anda perlu menginstal postgresql-server-dev-X.Y untuk membangun ekstensi sisi server atau libpq-dev untuk membangun aplikasi sisi klien

  5. 3 Cara Mendaftar semua Pemicu untuk Tabel yang Diberikan di PostgreSQL