sql >> データベース >  >> RDS >> Mysql

送信されたメッセージの応答時間を確認します-SQLのみを使用して可能ですか?

    select t1.*, min(t2.msg_date) as response_date 
    from mytable t1 join mytable t2 
          on t1.msg_sender=t2.msg_receiver and t2.msg_sender=t1.msg_receiver and t2.msg_date>t1.msg_date
    group by t1.msg_sender,t1.msg_receiver,t1.msg_date 
    

    t1の各メッセージについて、t1メッセージの後に送信された対応する回答を取得し、それらをグループ化して最小の応答日(最初の回答日)を取得します。

    上記の選択をサブクエリに配置し、response_date --msg_date

    のAVGを見つけます

    UPDATE誤ったテーブルm2。*を使用しました。m1。*に置き換えました。結果はそこにあります

    SELECT
        AVG(UNIX_TIMESTAMP(response_date) - UNIX_TIMESTAMP(msg_date)),
        AVG(response_date - msg_date)
    FROM
    (SELECT
        m1.*,
        min(m2.msg_date) as response_date 
    FROM
        edu_messages m1
    JOIN
        edu_messages m2 ON m1.msg_sender = m2.msg_receiver AND m2.msg_sender = m1.msg_receiver AND m2.msg_date > m1.msg_date 
    GROUP BY
        m1.msg_sender,
        m1.msg_receiver,
        m1.msg_date) AS table1
    



    1. 相乗り用のデータモデルの作成

    2. INオペレーターはOracleでLIKEワイルドカード(%)を使用できますか?

    3. Oracleで10分以内に1,000万のクエリを挿入しますか?

    4. テーブルの行サイズを決定する