显示记录组之间的平均时间

时间:2016-02-29 13:00:15

标签: mysql datetime average

我在这里有一个小难题:)

我有一个包含2个表的数据库:survey_reply和questions, 像这样:

table SURVEY_REPLY

id | question_id | data_time            | user_id | user reply and others col...
--------------------------------------------------------
522|   2         |  2016-02-29 10:07:10 | jacky
.  |   3         |  2016-02-29 10:07:22 | jacky
.  |   1         |  2016-02-29 10:07:59 | jacky
.. |   4         |  2016-02-29 10:08:40 | jacky
...|   2         |  2016-02-29 11:21:10 | paul
.  |   3         |  2016-02-29 11:21:32 | paul
.  |   2         |  2016-02-29 11:21:35 | louise
.  |   1         |  2016-02-29 11:21:50 | paul
.. |   4         |  2016-02-29 11:22:30 | paul
.. |   3         |  2016-02-29 11:23:01 | louise

按照此表中的顺序向用户显示问题:

table QUESTIONS

    id | q_ord | survey_id | other columns....
    -------------------------------------------
    1  |   3   |   786
    2  |   1   |   786
    3  |   2   |   786
    4  |   4   |   786

我知道平均回复时间,人们花时间做出选择并回答问题。

此示例中的计算

第四-3个。 (最后一个减去前一个)

回复question.id = 4(question.q_ord = 4)

    jacky spent 41 sec (10:08:40-10:07:59)
    paul        80 sec (11:22:30-11:21:50)
    louise doesnt reply

3TH-第二。 (第3个减去第2个)

表示question.id = 1(question.q_ord = 3)

    jacky spent 37 sec (10:07:59-10:07:22)
    paul        18 sec (11:21:50-11:21:32)
    louise doesnt reply

第二-第一。 对于question.id = 3(question.q_ord = 2)

    jacky spent 12 sec (10:07:22-10:07:10)
    paul        22 sec (11:21:32-11:21:10)
    louise      86 sec (11:23:01-11:21:35)

我不需要计算开始问题的时间.id = 2(question.q_ord = 1)

结果应该是:


    q_id | q_ord | av_reply_time
    -------------------------------------------
      3  |    2  |    (12+22+86)/3
      1  |    3  |    (37+18)/2
      4  |    4  |    (41+80)/2

如何理解?

PS q_ord它是一个连续的整数,不会跳过任何数字。    总是从1开始。我总是知道最大数量(调查的总问题),在这种情况下只有4。

1 个答案:

答案 0 :(得分:1)

我假设你的结果集略有偏差,我还不能(还)看到第二张表的重要性......

Current Players (<span id="listPlayers"></span>)
<hr />
<span id="playerNames"></span>