计算2次之间的分钟数,并将其除以记录数量

时间:2017-04-14 13:02:45

标签: mysql sql count timestamp calculated-columns

我们如何计算所有记录中9到11之间的分钟数(生成列)。我也想知道如何根据记录的数量来分配输出。

select  address,
        min(from_unixtime(time)) "Aankomsttijd",
        max(from_unixtime(time)) "Eindtijd",
        TIMESTAMPDIFF(MINUTE, min(from_unixtime(time)), max(from_unixtime(time))) "Minuten"
from    sensordata1
Where   from_unixTime(sensordata1.time) BETWEEN '2017/04/04' AND '2017/04/05' AND
        from_unixTime(sensordata1.time, '%H') BETWEEN 9 AND 11
group by address  
having Minuten > 2 AND Minuten < 1400

Output

Normal database as you can see "Minuten is not a real column"

我想要得到的是所有分钟在一起作为1个金额,我希望它能够计算出他们一起计算分钟数的记录数量。

1 个答案:

答案 0 :(得分:1)

您可以使用您编写的查询作为所需计算​​的来源,例如

select  sum(Minuten) total_minuten,
        count(*) records,
        sum(Minuten) / count(*) average_minuten
from    (
            select  address,
                    min(from_unixtime(time)) "Aankomsttijd",
                    max(from_unixtime(time)) "Eindtijd",
                    TIMESTAMPDIFF(
                      MINUTE,
                      min(from_unixtime(time)),
                      max(from_unixtime(time))
                    ) "Minuten"
            from    sensordata1
            Where   from_unixTime(sensordata1.time) BETWEEN '2017/04/04' AND '2017/04/05' AND
                    from_unixTime(sensordata1.time, '%H') BETWEEN 9 AND 11
            group by address  
            having Minuten > 2 AND Minuten < 1400
        ) t1