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

Изчисляване на кумулативна дневна сума в PostgreSQL

Можете да използвате функциите за агрегиране и прозорец заедно:

select date_trunc('day', date_created) as day_created,
       location_state,
       count(*) opp_count,
       sum(count(*)) over (partition by location_state order by min(date_created)) as cumulative_opps_received
from t
group by day_created
order by location_state, day_created;

Можете да разделите, ако искате процента:

select date_trunc('day', date_created) as day_created,
       location_state,
       count(*) opp_count,
       sum(count(*)) over (partition by location_state order by min(date_created))  as cumulative_opps_received,
       (sum(count(*)) over (partition by location_state order by min(date_created)) * 1.0 /
        sum(count(*)) over (partition by location_state)
       ) as cumulative_ratio
from t
group by day_created
order by location_state, day_created;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво изисква този JavaScript?

  2. SQL заявка за намиране на ред с определен брой асоциации

  3. datagrip Не може да се прилагат промени Тази таблица е само за четене. Промените в редактора на клетки не могат да бъдат приложени

  4. postgresql с функция wrap sql толкова бавен?

  5. Частичен индекс не се използва в клаузата ON CONFLICT при извършване на upsert в Postgresql