MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。

MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。

需要背景

統計インターフェースでは、フロントエンドは 2 つの配列を返す必要があります。1 つは 0 から 23 までの時間数で、もう 1 つは各時間に対応する統計数値です。

アイデアは、group by を直接使用して、カウントするテーブルをクエリすることです。特定の時間の統計数が 0 の場合、その時間はグループ化されません。考えてみると、時間を表す列が1つだけの補助テーブルを作成し、0~23を挿入して合計24時間を表す必要があります。

テーブル hours_list を作成します (
 時間 int NOT NULL 主キー
)

まず時間表を確認し、次に確認する必要がある表を接続し、統計のない時間を 0 で入力します。ここでは、複数のテーブルをクエリする必要があるため、create_time は各時間間隔内にあり、SOURCE_ID はクエリ条件の統計合計に等しいため、複数のテーブルを UNION ALL します。

	選択
			 t.時間、
			 sum(t.HOUR_COUNT) 時間カウント
			から
    (選択
     hs. 時間として時間、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    LEFT JOIN cbc_source_0002 cs ON HOUR (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間
    ユニオンオール
    選択
     hs.HOUR AS HOUR、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    cbc_source_hs cs ON HOUR を左結合します (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間
    ユニオンオール
    選択
     hs.HOUR AS HOUR、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    左結合 cbc_source_kfyj cs ON HOUR (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間
    ユニオンオール
    選択
     hs.HOUR AS HOUR、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    左結合 cbc_source_his_0002 cs ON HOUR (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間
    ユニオンオール
    選択
     hs.HOUR AS HOUR、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    左結合 cbc_source_his_hs cs ON HOUR (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間
    ユニオンオール
    選択
     hs.HOUR AS HOUR、
     COUNT(cs.RECORD_ID) を HOUR_COUNT として計算する
    から
     cbc_hours_list hs
    左結合 cbc_source_his_kfyj cs ON HOUR (cs.create_time) = hs.HOUR
    かつ cs.create_time > #{startTime}
    かつ cs.create_time <= #{endTime}
    <#if sourceId?exists && sourceId !=''>
     かつ SOURCE_ID = #{sourceId}
    </#if>
    グループ化
     hs. 時間) t
   グループ化
    t.時間

効果

統計カウントが 0 の時間も見つかります。

ここに画像の説明を挿入

これで、MySQL データを時間単位でクエリし、欠落しているデータをゼロで埋める方法についての説明は終わりです。MySQL データを時間単位でクエリする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL サブクエリ (ネストされたクエリ)、結合テーブル、複合クエリの詳細な説明
  • MySQL sql_modeクエリと設定の詳細な説明
  • MySQL サブクエリとグループ化されたクエリ
  • MySQL グループ化クエリと集計関数
  • MysqlクエリJSON結果に関連する関数の概要
  • MySQLクエリのソートとページング関連
  • MySql クエリ期間メソッド
  • MySQL での基本的な複数テーブル結合クエリのチュートリアル
  • MySQL のサブクエリの例
  • MySQL複合クエリの詳細な説明

<<:  dockerでsshd操作を有効にする

>>:  HTML 言語百科事典

推薦する

Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル

1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...

デザイン視点技術はデザイン能力の重要な資本である

ある設計士はこう尋ねた。「実際のプロジェクト制作には参加せずに、純粋に設計だけをすることはできますか...

MySQLでテーブルを作成し、フィールドコメントを追加する方法

コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...

Dockerを使用してコンテナリソースを制限する方法

覗き見の問題サーバーでは、IIS サービスが複数のサイトを展開していると仮定すると、サイトの 1 つ...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

MySQLで重複行を削除する方法

SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...

MySQL学習データベース操作DML初心者向け詳細解説

目次1. ステートメントを挿入する1.1 行を挿入する1.2 複数行を挿入する1.3 クエリステート...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

css n番目から始まるすべての要素を取得する

具体的なコードは次のとおりです。 <div id="ボックス"> &...

JavaScript でローカル変数をグローバル変数に変換する方法

まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...

reactにおけるstateの略語の詳細な説明

序文国家とは何か私たちは皆、React はステート マシンであると言います。それはどのように反映され...

要素UIポップアップコンポーネントをカプセル化する手順

el-dialogをコンポーネントとしてカプセル化するelement-ui を使用する場合、ポップア...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

WIN10 システムと Docker 内部コンテナ IP 間の通信方法

1. Windows 版の Docker をインストールしたら、Docker クイックスタート ター...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...