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

Fungsi rasio_ke_laporan postgres

Anda tidak perlu mengimpor fungsi tertentu sama sekali. Setara dengan Postgresql menggunakan SUM berjendela :

SELECT ID, val, 1.0 * val / NULLIF(SUM(val) OVER(),0) AS ratio_to_report
FROM tab

SqlFiddleDemo

Keluaran:

╔═════╦══════╦═════════════════════╗
║ id  ║ val  ║   ratio_to_report   ║
╠═════╬══════╬═════════════════════╣
║  1  ║  10  ║ 0.16666666666666666 ║
║  2  ║  10  ║ 0.16666666666666666 ║
║  3  ║  20  ║ 0.3333333333333333  ║
║  4  ║  20  ║ 0.3333333333333333  ║
╚═════╩══════╩═════════════════════╝

Untuk mensimulasikan PARTITION BY Anda dapat menggunakan:

SELECT ID, val, category,
    1.0 * val / NULLIF(SUM(val) OVER(PARTITION BY category),0) AS ratio_to_report
FROM tab

SqlFiddleDemo2

Keluaran:

╔═════╦══════╦═══════════╦═════════════════╗
║ id  ║ val  ║ category  ║ ratio_to_report ║
╠═════╬══════╬═══════════╬═════════════════╣
║  1  ║  10  ║ a         ║ 0.25            ║
║  2  ║  10  ║ a         ║ 0.25            ║
║  3  ║  20  ║ a         ║ 0.5             ║
║  4  ║  20  ║ b         ║ 1               ║
╚═════╩══════╩═══════════╩═════════════════╝



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Titik Caculate 50 mil jauhnya (Utara, 45% NE, 45% SW)

  2. Bagaimana cara menghubungkan Postgres ke server localhost menggunakan pgAdmin di Ubuntu?

  3. EF Core GroupBy dengan Select Distinct Count

  4. Perintah PostgreSQL VALUES Dijelaskan

  5. urutan byte tidak valid untuk pengkodean UTF8