sql >> Database >  >> RDS >> PostgreSQL

Maak een lijst van alle dagen per maand en verdeel de waarde gelijkelijk over elke dag

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. Berekening van de laatste dag van de maand (voeg een maand toe aan de eerste van de maand om de eerste dag van de volgende maand te krijgen, trek er één dag van af)
  2. Genereer een datumreeks van begin tot einde van een maand
  3. De samenvoeging van uw gegevens met de gegenereerde reeks heeft de kostenwaarden al gedupliceerd, die alleen hoeven te worden gedeeld door het aantal dagen van elke maand, wat de COUNT() is vensterfunctie doet hier



  1. Is er een manier om MySQL- en databasefouten in PHP op te vangen?

  2. Webserver installeren in FreeBSD 6.0 met Apache 2.2, MySQL 5.0 en PHP 5 – Deel 3

  3. Hoe alle beperkingen in tabel mysql incl. PK FK CHK UNI enz

  4. Hoe controleer ik de privileges (DDL,DML,DCL) op objecten die zijn toegewezen aan Schema, Rollen in Oracle Database?