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

推薦する

MySql 共通クエリコマンド操作リスト

MYSQL でよく使用されるクエリ コマンド: mysql> select version()...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

WeChatアプレットはユーザーログインモジュールサーバーの構築を実装します

サーバーの構築には node.js を選択しました。まだインストールしていない方は、私の他の nod...

Linux CRM デプロイメント コードの詳細な説明

Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...

Reactの状態管理の3つのルールのまとめ

目次序文No.1 焦点No.2 複雑な状態ロジックの抽出No.3 複数状態操作の抽出要約する序文Re...

Docker-Composeコマンドの使い方の詳しい説明

Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使...

Linux コマンドを使用してオーディオ形式を変換および結合する方法

FFmpeg flacをインストールする eric@ray:~$ sudo apt install ...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

Nginx ローカル ディレクトリ マッピング実装コード例

他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

MySQL データベース分離レベルと MVCC の詳細な説明

目次1. 分離レベルコミットされていない読み取りREAD COMMITED (コミット読み取り/非反...

Docker で Portainer ビジュアル インターフェースを構築するための詳細な手順

前回述べた問題を解決するために、オンラインで検索したところ、非常に優れたビジュアル インターフェース...

MySQLの左結合を内部結合に素早く変換するプロセス

日々の最適化プロセス中に、奇妙なことに気付きました。同じ SQL にまったく異なる 2 つの実行プラ...

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...