Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Generieren Sie Daten für Datumsbereiche, einschließlich derjenigen, die nicht in den Daten vorhanden sind

Eine zusätzliche Kalendertabelle wird gut funktionieren. Die einfachste mögliche Kalendertabelle ist eine einzelne Spalte mit Datumsangaben.

create table calendar (
    cal_date date primary key
);

Sie können eine Tabelle oder SQL verwenden, um sie zu füllen. Eine äußere Verknüpfung darauf bringt die Daten ein, die in Ihren Daten nicht vorhanden sind. Schränken Sie die Berechtigungen mit GRANT und REVOKE ein und verwenden Sie alle erforderlichen Mittel, um sicherzustellen, dass die Daten, die Sie dort erwarten, tatsächlich darin enthalten sind. Ich führe einen täglichen Bericht auf meinem Server aus, der sicherstellt, dass es 'n' Zeilen gibt, und die frühesten und spätesten Daten verifiziert.

Auf einigen Plattformen können Sie spontan eine Reihe von Daten generieren und entweder direkt oder in einem CTE verwenden. PostgreSQL hat dafür Funktionen; Ich weiß nicht, ob MySQL das tut. Sie sind jedoch nicht schwer zu schreiben, wenn Sie Ihre eigenen erstellen möchten.