一定期間の日ごと、時間ごとの統計データを取得する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 カスタムカルーセル効果

推薦する

ブラウザの自動更新を実装するReactサンプルコード

目次フロントエンドルーティングとは何ですか?フロントエンドルーティングを実装するにはどうすればいいで...

負荷分散と動的・静的分離を実現するNginx+Tomcatの原理の分析

1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...

JavaScript ドラッグタイム ドラッグケースの詳細な説明

目次DragEvent インターフェースデータ転送インターフェースの概要DataTransfer の...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

CentOs7 64 ビット MySQL 5.6.40 ソースコードのインストール プロセス

1. インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [r...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

暗号化における https の Apache 展開の概要

目次目的実験環境実験原理実験手順1. 独立したCAを生成する2. サーバーの秘密鍵と署名要求ファイル...

Docker で Jenkins サービスを構築する例

画像をプルする root@EricZhou-MateBookProX: docker pull je...

要素内の TimePicker は時間の一部を無効にします (分単位で無効)

プロジェクトの要件は、日付と時刻を選択し、現在の時刻以降の時刻のみを選択し、最小レベルを分単位で無効...

xshellリモート接続の自動切断の問題の解決方法の詳細な説明

xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...

あなたを救うために、私のテーブルは何を使えばいいでしょうか (Haiyu Blog)

テーブルはかつて、Web ページの開発、つまりレイアウトにおいて非常に重要な役割を果たしていました。...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

CentOS 7 でゲートウェイを変更して IP を設定する方法の例

Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...

MySQL 百万レベルのデータページングクエリ最適化ソリューション

データベースからクエリする必要があるテーブルに数万件のレコードがある場合、すべての結果を一度にクエリ...