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

Създайте списък с всички дни в месеца и разпределете стойността поравно за всеки ден

demo:db<>fiddle

SELECT
    gs::date,
    costs /  COUNT(*) OVER (PARTITION BY entry_date)    -- 3
FROM costs,
    generate_series(                                    -- 2
        entry_date,
        entry_date + interval '1 month - 1 day',        -- 1
        interval '1 day'
    ) gs
  1. Изчисляване на последния ден от месеца (добавете месец към първия ден от месеца, за да получите първия ден от следващия месец, извадете един ден от него)
  2. Генерирайте поредица от дати от началото до края на месеца
  3. Съединяването на вашите данни с генерираната поредица вече дублира стойностите на разходите, които трябва само да бъдат разделени на броя на дните за всеки месец, което е това, което COUNT() функция прозорец прави тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортиране на данни, съдържащи емисии на редове, като CSV от PostgreSQL

  2. PostgreSQL 9.2 JDBC драйвер използва клиентска часова зона?

  3. Как да прекъсна RPostgresql заявка в R

  4. Разлика в производителността на CTE на Postgres срещу подзаявка. Защо?

  5. postgresql заявка върху няколко схеми