次のクエリを使用して MySQL テーブルを作成し、データを設定しています。
SET time_zone = ' 00:00'; CREATE TABLE timestamp_n_datetime ( ID INT、 時間 DATETIME、 avg_time DATETIME ); INSERT INTO timestamp_n_datetime(id,time,avg_time) VALUES("1","2023-01-03 10:12:13", NULL), ("1"、"2023-02-04 11:13:14"、NULL)、 ("2"、"2023-03-02 09:14:10"、NULL)、 ("2"、"2023-04-02 05:15:50"、NULL)、 ("1", "2023-06-10 02:04:10", NULL);ID でグループ化された「time」列の平均を「avg_time」列に入力したいと考えています。たとえば、最初の行は「id」= 1 なので、「id」も 1 であるため、「avg_time」列は 1 行目、2 行目、5 行目の平均を取る必要があります。
この質問にはどう答えればよいでしょうか?
編集: 明確にするために、すべての DATETIME 列をミリ秒に変換し、それらをすべて加算し、加算した数値で割ります。たとえば、id=2 の場合、ミリ秒に変換し、加算して 2 で割ると (「id」= 2 の行が 2 つあるため)、2023 年 3 月 17 日午後 5 時 45 分 00 秒の平均が得られます。この方法で平均値を求めたいと思います。
この
リーリーUNIX_TIMESTAMP
を使用して秒に変換し、FROM_UNIXTIME
を使用して日時形式に戻します。これが平均を取得する方法です。平均値を入力する方法は次のとおりです:
リーリー