需要背景統計インターフェースでは、フロントエンドは 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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...
#!/bin/bash #SVNをダウンロード yum -y サブバージョンをインストールします ...
ここでは、MySQL の使用中に発生するいくつかの問題とその解決策を示します。 sql_mode=o...
私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...
MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...
1. 仮想マシンに共有フォルダを設定します。 1. 処理する仮想マシンを選択し、右クリックして設定...
目次1. 関連するbinlog設定2. binlogに関する詳細設定2.1 バイナリログモードの変更...
VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...
正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...
AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...
1 ダウンロードアドレスは https://dev.mysql.com/downloads/mysq...
方法1コードをコピーコードは次のとおりです。 document.getElementById(&qu...
目次1. はじめに2. シナリオ3. 環境を整える3.1 環境変数の挿入4. 最後に1. はじめに一...
目次1. はじめに2. 使用1. vue2とvue3の違い2. ページ上の一部のデータはキャッシュす...
並べ替えクエリ (order by)電子商取引の場合: 今日完了したすべての注文を表示し、取引金額に...