PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Функция Postgres ratio_to_report

Изобщо не се нуждаете от импортиране на конкретна функция. Postgresql еквивалент, използващ прозорец SUM :

SELECT ID, стойност, 1,0 * стойност / NULLIF(SUM(val) OVER(),0) AS ratio_to_reportFROM раздел 

SqlFiddleDemo

Изход:

╔═════╦══════╦═════════════════════╗║ id съотношение ║ _report ║ стойност ╠ ═════╬══════╬═════════════════════╣║ 1 ║ 10 ║ 0.166666666666666666 ║║ 2 ║ 10 ║ 0.16666666666666666 ║║ 3 ║ 20 ║ 0.3333333333333333 ║║ 4 ║ 20 ║ 0.333333333333333 ║╚═════╩══════╩═════════════════════╝ < 

За симулиране на PARTITION BY можете да използвате:

ИЗБЕРЕТЕ ID, стойност, категория, 1.0 * стойност / NULLIF(SUM(val) OVER(PARTITION BY category),0) AS ratio_to_reportFROM раздел 

SqlFiddleDemo2

Изход:

<предварителен код>╔═════╦══════╦═══════════╦════════════════ ║ ID ║ Вал ║ Категория ║ съотношение_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. PostgreSQL заявка за списък с разрешени стойности в ограничение?

  2. Тип на Java в JDBC към Postgres ltree

  3. Как да създадете система за изграждане на PostgreSQL

  4. Как да генерирате схема от CSV за копие на PostgreSQL

  5. Как да изброите всички изгледи в PostgreSQL база данни