sql >> Databasteknik >  >> RDS >> Mysql

Generera data för datumintervall inklusive de som inte finns i data

En extra kalendertabell kommer att fungera bra. Den enklaste möjliga kalendertabellen är en enda kolumn med datum.

create table calendar (
    cal_date date primary key
);

Du kan använda ett kalkylblad eller SQL för att fylla i det. En yttre koppling på den kommer att ta in de datum som inte finns i din data. Begränsa behörigheter med GRANT och REVOKE, och använd de medel som krävs för att se till att datumen du förväntar dig att vara där faktiskt finns där. Jag kör en daglig rapport på min server som ser till att det finns 'n' rader och verifierar de tidigaste och senaste datumen.

På vissa plattformar kan du generera en serie datum i farten och antingen använda den direkt eller i en CTE. PostgreSQL har funktioner för det; Jag vet inte om MySQL gör det. De är dock inte svåra att skriva om du vill skapa dina egna.



  1. Ändra Django utvecklingsdatabas från standard SQLite till PostgreSQL

  2. Ta reda på om ett objekt är en användardefinierad tabell i SQL Server med OBJECTPROPERTY()

  3. Bli tänd av Apache Spark – Del 2

  4. Skapa en användardefinierad funktion som fungerar med GROUP BY i mysql