平均sql表中的数据
在下列情况下我需要你的帮助 我有表格数据 在该表中,我有大量记录,如下所示平均sql表中的数据,sql,average,Sql,Average,在下列情况下我需要你的帮助 我有表格数据 在该表中,我有大量记录,如下所示 PK,ProjectID,MAchineId,Powervalue,PowerData 1 1 1 20.5 2011-07-05 12:00:00 2 1 1 21.5 2011-07-05 12:01:00 3 1 1 22.5 2011-07-05 12:02:00
PK,ProjectID,MAchineId,Powervalue,PowerData
1 1 1 20.5 2011-07-05 12:00:00
2 1 1 21.5 2011-07-05 12:01:00
3 1 1 22.5 2011-07-05 12:02:00
4 1 1 23.5 2011-07-05 12:03:00
5 1 1 24.5 2011-07-05 12:04:00
6 1 1 25.5 2011-07-05 12:05:00
7 1 1 26.5 2011-07-05 12:06:00
8 1 1 27.5 2011-07-05 12:07:00
9 1 1 26.5 2011-07-05 12:08:00
10 1 1 28.5 2011-07-05 12:09:00
输出
PK,ProjectID,MAchineId,Powervalue(Avg value of power),PowerData
1 1 1 20.5 2011-07-05 12:00:00
6 1 1 25.5 2011-07-05 12:05:00
任何帮助都将不胜感激。提前谢谢。您只需要平均功率值
SELECT PK,ProjectID,MachineID, AVG(PowerValue), PowerData FROM ChartData
例如,如果您想要每台机器的平均功率值,这将成为查询:
SELECT PK,ProjectID,MachineID, AVG(PowerValue), PowerData FROM ChartData GROUP BY MachineID
据我所知,你没有做任何平均值我猜你想每五个元组进行一次聚合?如果是这样的话,也许类似这样的事情会有所帮助:
选择PK、ProjectID、MachineID、平均值(功率值)、功率数据,从表格分组依据(PK-1)/5
虽然我真的不知道你是否能通过分组来做到这一点
@gbn:我想直接回答你的评论,但我觉得我没有这个特权。您能解释一下为什么除了MySql之外,其他所有记录都会失败吗?选择每隔5条记录(T-SQL)
如果不进一步说明您想要什么,这是我能给出的最好答案。为什么要按5行分组?PK中的差距如何?是否按日期时间值分组?如果是这样的话,那么缺少间隔又如何呢?这将在除MySQL之外的所有平台上失败,因为聚合语法不正确。在MySQL上,它不会给出OP提到的输出。理解OP的问题有点困难。他不是在问什么。@TJHeuvel我想这样,但每五分钟一次。PowerData是什么类型的?DateTime、Timestamp或更差的varchar?@TJHeuvel Powerdata是DateTime,PK中是否有间隙?由于聚合语法不正确,除了MySQL之外,其他平台都会失败。在MySQL上,它不会给出OP提到的输出。。。
Select * from ChartData where PK=1 or PK=6
select
ch.*
from
(select
row_number() over (order by pk asc) as r,
pk
from
chartdata
) as r
inner join chartdata as ch
on r.pk = c.pl
where
(r.r-1)%5 = 0
;