我们如何计算所有记录中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
Normal database as you can see "Minuten is not a real column"
我想要得到的是所有分钟在一起作为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