MySQL-Abfragedaten stündlich, geben Sie 0 ein, wenn keine Daten vorhanden sind

MySQL-Abfragedaten stündlich, geben Sie 0 ein, wenn keine Daten vorhanden sind

Nachfragehintergrund

Als statistische Schnittstelle muss das Front-End zwei Arrays zurückgeben, eines ist die Stundenzählung von 0 bis 23 und das andere ist die statistische Zahl, die jeder Stunde entspricht.

Die Idee besteht darin, group by direkt zu verwenden, um die zu zählende Tabelle abzufragen. Wenn die statistische Zahl einer bestimmten Stunde 0 ist, wird für diese Stunde keine Gruppierung durchgeführt. Nachdem ich darüber nachgedacht habe, muss ich eine Hilfstabelle mit nur einer Spalte für Stunden erstellen und dann 0-23 für insgesamt 24 Stunden einfügen

CREATE TABLE Stundenliste (
 Stunde int NICHT NULL PRIMÄRSCHLÜSSEL
)

Prüfen Sie zunächst die Stundentabelle, verknüpfen Sie anschließend die zu prüfende Tabelle und tragen Sie für die Stunden ohne Statistik 0 ein. Da wir hier mehrere Tabellen abfragen müssen, liegt die Erstellungszeit innerhalb jedes Stundenintervalls und die Quell-ID entspricht der statistischen Summe der Abfragebedingungen. Führen Sie daher eine UNION für alle mehreren Tabellen durch.

	WÄHLEN
			 t.STUNDE,
			 Summe(t.HOUR_COUNT) Stundenanzahl
			AUS
    (WÄHLEN
     hs. STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_0002 cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE
    UNION ALLE
    WÄHLEN
     hs.STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_hs cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE
    UNION ALLE
    WÄHLEN
     hs.STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_kfyj cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE
    UNION ALLE
    WÄHLEN
     hs.STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_his_0002 cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE
    UNION ALLE
    WÄHLEN
     hs.STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_his_hs cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE
    UNION ALLE
    WÄHLEN
     hs.STUNDE ALS STUNDE,
     ANZAHL(cs.RECORD_ID) AS HOUR_COUNT
    AUS
     cbc_hours_list hs
    LEFT JOIN cbc_source_his_kfyj cs ON STUNDE (cs.create_time) = hs.STUNDE
    UND cs.create_time > #{startTime}
    UND cs.create_time <= #{endTime}
    <#wenn Quell-ID?existiert && Quell-ID !=''>
     UND SOURCE_ID = #{sourceId}
    </#if>
    GRUPPELN NACH
     hs. STUNDE) t
   GRUPPELN NACH
    t.Stunde

Wirkung

Es können auch Stunden mit einem statistischen Zählerwert von 0 gefunden werden.

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die stündliche Abfrage von MySQL-Daten und das Ausfüllen fehlender Daten mit Nullen. Weitere Informationen zur stündlichen Abfrage von MySQL-Daten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung von MySQL-Unterabfragen (verschachtelte Abfragen), Verknüpfungstabellen und kombinierten Abfragen
  • Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung
  • MySQL-Unterabfragen und gruppierte Abfragen
  • MySQL-Gruppierungsabfragen und Aggregatfunktionen
  • Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen
  • Sortierung und Paginierung von MySQL-Abfragen
  • MySql-Abfragezeitraummethode
  • Grundlegendes Tutorial zu Multi-Table-Join-Abfragen in MySQL
  • Unterabfragebeispiele in MySQL
  • Detaillierte Erläuterung der kombinierten MySQL-Abfrage

<<:  Aktivieren Sie den SSHD-Vorgang im Docker

>>:  Detaillierte Erklärung der Vue-Mixin-Verwendung und des Zusammenführens von Optionen

Artikel empfehlen

jQuery realisiert den Shuttle-Box-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

HTML-Auszeichnungssprache - Referenz

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Details zu MySQL-Zeittypen und -Modi

Inhaltsverzeichnis 1. MySQL-Zeittyp 2. Überprüfen...

Docker-Image erstellen Dockerfile und Commit-Operationen

Erstellen des Images Es gibt zwei Hauptmethoden z...

Übersicht über die Unterschiede zwischen Linux TTY/PTS

Wenn wir einen Buchstaben auf der Tastatur eingeb...

Der IE8-Browser wird vollständig mit Webseitenstandards kompatibel sein

<br />Um zu beweisen, dass sein Engagement f...

Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben

Dieser Artikel veranschaulicht anhand von Beispie...

Tutorial zum Importieren und Exportieren von Docker-Containern

Hintergrund Die Popularität von Docker hängt eng ...

CSS3-Radarscan-Kartenbeispielcode

Verwenden Sie CSS3, um coole Radar-Scan-Bilder zu...

Natives JS zum Erzielen digitaler Tisch-Spezialeffekte

Dieser Artikel beschreibt einen Digitaluhreffekt,...