PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Utwórz listę wszystkich dni w miesiącu i podziel wartość równo na każdy dzień

demo:db<>skrzypce

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. Obliczanie ostatniego dnia miesiąca (dodaj miesiąc do pierwszego dnia miesiąca, aby uzyskać pierwszy dzień następnego miesiąca, odejmij od niego jeden dzień)
  2. Generuj serię dat od początku do końca miesiąca
  3. Połączenie Twoich danych z wygenerowanymi seriami już zduplikowało wartości kosztów, które trzeba tylko podzielić przez liczbę dni każdego miesiąca, co jest wynikiem COUNT() działa tutaj funkcja okna



  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 - nieskończona rekurencja wykryta w polityce dla relacji

  2. Przyspiesz test zakresu dla wartości kluczy zagnieżdżonych w tablicy obiektów jsonb

  3. Zresetuj wartość sekwencji jako 1

  4. SKOPIOWAĆ tylko niektóre kolumny z wejściowego pliku CSV?

  5. Mac psql/readline — biblioteka nie jest załadowana