基本上我试图从表中添加一些字段并重现另一张表,但没有运气。MYSQL在给定的时间戳列内求和的字段
初始表看起来像;
ID STATUS Min Max Mean TimeStamp
1 Motor1-ON 10 20 15 12/01/2013 05:00
2 Motor1-OFF 5 7 6 12/01/2013 05:00
3 Motor1- HOLD 1 3 2 12/01/2013 05:00
4 Motor2-ON 8 12 10 12/01/2013 05:00
5 Motor2-OFF 4 6 5 12/01/2013 05:00
6 Motor2-HOLD 1 5 3 12/01/2013 05:00
7 Motor1-ON 11 21 16 12/01/2013 05:10
8 Motor1-OFF 5 7 6 12/01/2013 05:10
9 Motor1- HOLD 1 3 2 12/01/2013 05:10
10 Motor2-ON 9 10 9.5 12/01/2013 05:10
11 Motor2-OFF 5 7 6 12/01/2013 05:10
12 Motor2-HOLD 1 5 3 12/01/2013 05:10
. . . . . .
. . . . . .
. . . . . .
状态为两种类型给出:电机1和电机2为每10分钟增加一个时间戳。 我试图创建一个基于第一个表的新表,以便为每个时间戳添加电机1和电机2的3个状态。我尝试实现的表(目前为止没有运气)应该看起来像;
Timestamp Total_ON Total_ON Total_ON Total_OFF Total_OFF Total_OFF
_Min _Max _Mean _Min _Max _Mean
12/01/2013 05:00 18 32 35 9 13 11
12/01/2013 05:10 20 31 25.5 10 14 12
. . . . . .
. . . . . .
(表继续到包括Total_Hold_Min,Total_Hold_Max,Total_Hold_Mean)
凡
Total_ON_Min = Motor 1_ON Min + Motor 2_ON Min (For its given Timestamp)
Total_ON_Max = Motor1_ON Max + Motor2_OFF Max (For its given Timestamp)
Total_ON_Mean = Motor1_ON Mean + Motor2_OFF Mean (For its given Timestamp)
等等...。
任何人都可以提供任何建议正确的mysql语句,我应该看着实现这一点。我一直试图实现CrossTab没有成功。使用选择语句和总计函数分别计算马达1和马达2的单独总计是没有问题的,但在每个时间戳内添加两个字段我没有成功
任何想法或相关链接大加赞赏,因为我试图建立在我的知识基础
我是新来的mysql
感谢
附加信息:
电机状态是非常独立和静态的,所以我不能分解它。数据透视表失去了我需要指出的灵活性。我提出了一个基于给定想法的解决方案,该解决方案适用于总共Min。
SELECT
`timestamp`,
status,
SUM(Min) AS `Total_ON_MIN` FROM Tablename where Status IN('Motor1_on','Motor2_on')
FROM table
GROUP BY `timestamp`
我就用这个方法通过时间戳“Total_Max_ON”等带来随着错误的集团虽然未能达到。
SELECT
`timestamp`,
status,
(SELECT SUM(Min) AS `Total_ON_MIN` FROM Tablename where Status IN('Motor1_on','Motor2_on')),
(SELECT SUM(Max) AS `Total_ON_MAX` FROM Tablename where Status IN('Motor1_on','Motor2_on')),
(SELECT SUM(Mean) AS `Total_ON_MEAN` FROM Tablename where Status IN('Motor1_on','Motor2_on'))
GROUP BY `timestamp`
任何想法用于进一步direction.Cheers
搜寻有关如何转动在MySQL数据,然后一展身手的详细信息;如果卡住了,请回来寻求帮助。 – eggyal
感谢您的指针。我会挖掘数据透视数据,看看它发生了什么。 – Tino88