一定期間の日ごと、時間ごとの統計データを取得する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はプログレスバーの変更効果を実現します

この記事ではVueを使ってプログレスバーの変更を簡単に実装してみましたので参考にしてください。具体的...

CSS でベジェ曲線の実装を反転する方法

まずは、以前書いた CSS カルーセルアニメーション効果を見てみましょう。アニメーションの遷移をスム...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

MySQL 接続失敗の一般的な障害と原因

==================================================...

MySQL エラー コード 1064 の解決策

SQL ステートメント内の単語が mysql のキーワードと競合する場合は、`` (タブ キーの上)...

Vueはファイルのアップロードとダウンロードを実装します

この記事では、参考までにVueのファイルのアップロードとダウンロードの具体的なコードを紹介します。具...

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

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

Javascriptの基礎を学ぶための10の重要な質問

目次1. Javascript とは何ですか? 2. DOMとは何か3. JSコードの実行方法4. ...

Linux デュアル ネットワーク カード バインディング スクリプト メソッドの例

Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...

Reactの簡単な紹介

目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...

コンテンツタイプの説明、つまりHTTPリクエストヘッダーのタイプ

コンテンツ タイプについて学ぶには、まずそれが何であるか、そして何に使用されるかを知る必要があります...