在以下情况下我需要你的帮助。
我有表ChartData
在该表中我有大量记录,如下所示
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
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:2)
Select * from ChartData where PK=1 or PK=6
就我所知,你没有做任何平均值
答案 1 :(得分:0)
你只想要平均功率值?
SELECT PK,ProjectID,MachineID, AVG(PowerValue), PowerData FROM ChartData
如果你想要每台机器的平均功率值,这将成为查询:
SELECT PK,ProjectID,MachineID, AVG(PowerValue), PowerData FROM ChartData GROUP BY MachineID
答案 2 :(得分:0)
我想你想要每五个元组聚合一次?如果是这样,也许这样的事情会有所帮助:
SELECT PK, ProjectID, MachineID, AVG(Powervalue), PowerData FROM table GROUP BY (PK-1)/5
虽然我真的不知道你是否可以用GROUP BY来做到这一点
@gbn:我想直接回答你的评论,但我认为我缺乏特权。你能解释为什么除了MySql之外都会失败吗?
答案 3 :(得分:0)
选择每5条记录(T-SQL)。
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
;
如果没有进一步澄清你想要什么,这是我能给出的最佳答案。