一定期間の日ごと、時間ごとの統計データを取得するMySQLの詳しい説明

一定期間の日ごと、時間ごとの統計データを取得するMySQLの詳しい説明

毎日の統計情報を取得する

プロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の 1 つは、特定の期間内の各日のログ データを取得することです。たとえば、2018-02-02 09:18:36 から 2018-03-05 23:18:36 までの各日のログ データを取得する必要があります。通常、この要件が見つかった場合は、関数を使用して解決することを検討し、SQL ステートメントを直接使用します。

選択
	DATE_FORMAT(トリガー時間、'%Y-%m-%d') トリガー日、
	COUNT(id) トリガーカウント
から
	`job_qrtz_trigger_log`
どこ
	トリガー時間 '2018-02-02 09:18:36' の間
'2018-03-05 23:18:36' と
GROUP BY トリガー日
トリガー時間で順序付けします。

クエリ結果:

上記のSQLの簡単な説明

まず、フィールドをクエリします。ここで、COUNT(id) triggerCount は必要な統計データの数です。実際のニーズに応じて、必要なフィールドを追加できます。

DATE_FORMAT(トリガー時間、'%Y-%m-%d') トリガー日

これは、YYYY-mm-dd の形式でフォーマットされた日付です。ここでのフォーマットは後続のグループ化に使用されるため、さまざまなニーズに応じてフォーマットをカスタマイズできます。

私の要件は、各日のログデータを取得することなので、年月日の形式でグループ化し、count(*) を通じて取得します。

ある月の各月のデータ量を取得したい場合は、形式を次のように変更します。

DATE_FORMAT(トリガー時刻、'%Y-%m')

もちろん、where 条件はフォーマットに一致する必要があります。where 条件を日付に制限して、月ごとにグループ化することはできません。

MySQL の日付出力形式は次のとおりです。

%a 曜日の略称
%b 月名の省略形
%c 月、数値
%D 英語の接頭辞付きの月日
%d 月の日付、数値 (00-31)
%e 月の日付、数値 (0-31)
%f マイクロ秒
%H 時間 (00-23)
%h 時間 (01-12)
%I 時間 (01-12)
%i 分、値 (00-59)
%j 年の日数 (001-366)
%k 時間 (0-23)
%l 時間 (1-12)
%M 月名
%m 月、数値 (00-12)
%p 午前または午後
%r 時刻、12 時間制 (hh:mm:ss AM または PM)
%S 秒 (00-59)
%s 秒 (00-59)
%T 時間、24 時間 (hh:mm:ss)
%U 週 (00-53) 日曜日は週の最初の日です
%u 週 (00-53) 月曜日が週の最初の日です
%V 週 (01-53) 日曜日は週の最初の日で、%X と一緒に使用されます。
%v 週 (01-53) 月曜日が週の最初の日です。%x と一緒に使用されます。
%W 曜日
%w 曜日 (0=日曜日、6=土曜日)
%X 年(日曜日を週の初日とする 4 桁)%V とともに使用される
%x 年(月曜日を週の始まりとする 4 桁)%v とともに使用される
%Y 年、4桁
%y 年、2桁

一日の時間ごとの統計情報を取得する

MySQLに付属のHOUR関数を使用して処理します

HOUR(trigger_time) を Hour として、count(*) を Count として選択します。 
  xxl_job_qrtz_trigger_log から 
  どこ
	トリガー時間 '2018-02-05 01:18:36' の間
かつ '2018-02-05 17:18:36'
  GROUP BY HOUR(トリガー時間) ORDER BY Hour(トリガー時間);

クエリの結果は次のとおりです

上記は、編集者が紹介した、一定期間内の毎日と毎時間の統計データを取得するためのMySQLの詳細な説明と統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • 指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)
  • MySQL DATEDIFF 関数を使用して 2 つの日付間の時間間隔を取得する方法
  • 同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ
  • 今日と昨日の 0:00 タイムスタンプを取得する MySQL の例
  • mysqlは昨日の日付、今日の日付、明日の日付、前の時間と次の時間の時刻を取得します
  • mysqlは指定された期間内の統計データを取得します
  • MySQLで時間を取得する方法

<<:  仮想マシンを作成し、VMware に Redhat Linux オペレーティング システムをインストールする (グラフィック チュートリアル)

>>:  vue+rem カスタムカルーセル効果

推薦する

ナビゲーションバーコンポーネントをVueでカプセル化する

はじめに:ナビゲーション バーなどのコンポーネント ベースのアイデアを使用して機能モジュールを完全に...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

LinuxサーバーにVueプロジェクトをデプロイする

ケース1 vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロ...

Centos7 Zabbix3.4 メールアラーム設定(メール内容がxx.bin添付ファイルになる問題の解決)

目次1. 監視Linuxホストを追加する2. メールボックスを設定する1. 監視Linuxホストを追...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

Vue3 Vue イベント処理ガイド

目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...

MySQL における varchar 型と char 型の違い

目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

JavaScript es6 の新しい配列メソッドの詳細な説明

目次1. 各() 2. arr.filter() 3. arr.every() 4. arr.map...

Vue+ElementUI はページング関数を実装します - mysql データ

目次1. 問題2. 解決策2.1 ページングコンポーネント2.2 データベースデータを取得する関数:...

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

JS ベースのページフローティングボックスを実装するためのサンプルコード

スクロール バーを下に引くと、主にposition:fixed;スタイルにより、フローティング ボッ...