Heim > Datenbank > MySQL-Tutorial > Wie fülle ich fehlende Daten mit Nullwerten in SQL-Abfragen?

Wie fülle ich fehlende Daten mit Nullwerten in SQL-Abfragen?

Mary-Kate Olsen
Freigeben: 2024-12-17 11:08:25
Original
420 Leute haben es durchsucht

How to Fill Missing Dates with Zero Values in SQL Queries?

Fehlende Daten mit Nullwerten zwischen Datumsbereichen abrufen

Die ursprüngliche Abfrage hat Daten zwischen zwei Daten abgerufen, fehlende Daten jedoch ausgeschlossen. Um fehlende Daten einzubeziehen und den fehlenden Daten einen Nullwert zuzuweisen, können wir eine Technik namens „Datumskennzeichnung“ verwenden.

Kennzeichnung fehlender Daten

Eine rekursive gemeinsame Tabelle Ausdruck (CTE) kann verwendet werden, um eine Reihe von Datumsangaben innerhalb des angegebenen Bereichs zu generieren. Der CTE mit dem Namen d beginnt mit dem ersten Datum des Bereichs und fügt rekursiv einen Tag hinzu, bis er das Enddatum erreicht.

;with d(date) as (
  select cast('10/01/2012' as datetime)
  union all
  select date+1
  from d
  where date < '10/15/2012'
  )
Nach dem Login kopieren

Verknüpfen mit vorhandenen Daten

Als nächstes führen wir einen linken äußeren Join zwischen dem CTE d und der ursprünglichen Datentabelle temp (t) durch, um die vorhandenen Daten für jedes Datum abzurufen. Wenn in temp ein Datum vorhanden ist, wird der Wert verwendet; Andernfalls ersetzen wir Null.

select t.ID, d.date CDate, isnull(t.val, 0) val
from d
left join temp t
       on t.CDate = d.date
order by d.date
OPTION (MAXRECURSION 0) -- use this if your dates are >99 days apart
Nach dem Login kopieren

Hinweis zu MAXRECURSION

Die Klausel OPTION (MAXRECURSION 0) verhindert, dass die Abfrage aufgrund übermäßiger Rekursion im Datumsbereich fehlschlägt ist zu groß. Sie können den Wert an Ihren spezifischen Datenbereich anpassen.

Mit dieser Technik können wir alle Daten zwischen zwei Daten abrufen, einschließlich fehlender Daten, und gleichzeitig sicherstellen, dass die fehlenden Werte als Null dargestellt werden.

Das obige ist der detaillierte Inhalt vonWie fülle ich fehlende Daten mit Nullwerten in SQL-Abfragen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage