Heim > Datenbank > MySQL-Tutorial > Wie fülle ich fehlende Daten in SQL-Abfrageergebnissen mit Nullzählungen aus?

Wie fülle ich fehlende Daten in SQL-Abfrageergebnissen mit Nullzählungen aus?

DDD
Freigeben: 2024-12-12 21:51:15
Original
314 Leute haben es durchsucht

How to Fill Missing Dates in SQL Query Results with Zero Counts?

Leere Daten in SQL-Ergebnissen auffüllen

Bei der Abfrage von MySQL zum Exportieren von Daten und Zählungen aus einer Tabelle können Lücken im Datumsbereich entstehen Tage unberücksichtigt. Um diese Lücken mit Null-Anzahl-Einträgen zu schließen, besteht ein einfacher Ansatz darin, eine serverseitig gespeicherte Prozedur zu verwenden.

Serverseitiges Auffüllen mit gespeicherter Prozedur

Das Folgende Die gespeicherte Prozedur erstellt eine temporäre Tabelle, die alle möglichen Daten innerhalb eines angegebenen Bereichs enthält. Diese Tabelle wird dann links mit den Abfrageergebnissen verknüpft, um die fehlenden Datumsangaben auszufüllen.

create procedure sp1(d1 date, d2 date)
  declare d datetime;

  create temporary table foo (d date not null);

  set d = d1
  while d <= d2 do
    insert into foo (d) values (d)
    set d = date_add(d, interval 1 day)
  end while

  select foo.d, count(date)
  from foo left join table on foo.d = table.date
  group by foo.d order by foo.d asc;

  drop temporary table foo;
end procedure
Nach dem Login kopieren

Dieser Vorgang verwendet zwei Datumsangaben als Eingabe und generiert eine temporäre Tabelle foo mit allen möglichen Datumsangaben dazwischen. Anschließend wird ein Left-Join mit der ursprünglichen Abfrage durchgeführt, um alle fehlenden Daten einzuschließen und einen vollständigen Datensatz zurückzugeben.

Clientseitige Prüfung (optional)

Zusätzlich eine einfache Die Prüfung kann auf der Clientseite (z. B. Perl) implementiert werden, um Fälle zu behandeln, in denen das aktuelle Datum nicht mit dem vorherigen Datum plus einem Tag übereinstimmt. In solchen Fällen können der Ausgabe zusätzliche Zeichenfolgen mit der Anzahl Null hinzugefügt werden.

Das obige ist der detaillierte Inhalt vonWie fülle ich fehlende Daten in SQL-Abfrageergebnissen mit Nullzählungen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage