需要获得当前小时和最后一小时之间两个值的差异,如下所述。
作为第一步,我尝试查找当前小时值但不确定如何从中减去第二个最后一小时值并显示当前小时行
select mmeName,startDate,max(startTime),endDate,max(endTime),c_ratio,set_time from attach where type='INIT' and endDate=Date(now()) group by mmeName
我的现有表格格式和所需输出将在附加图像中捕获。
任何帮助/建议都将不胜感激!
答案 0 :(得分:0)
假设您的表中有自动增量ID,请尝试以下查询:
SELECT a1.mmeName, a1.c_ratio, a1.set_time, a0.c_ratio - a1.c_ratio AS last_hr, a0.set_time - a1.set_time AS last_hr_2
FROM attach a1
JOIN attach a0 ON a0.id = (SELECT MAX(id) FROM attach WHERE id < a1.id AND mmeName = a1.mmeName)
在此查询中,a1
表示当前行,而a0
表示前一行具有相同的mmeName
。然后,您可以像last_hr
一样构建a0.c_ratio - a1.c_ratio
这样的字段:
如果每个mmeName
只需要一行,则必须加总差异,GROUP BY mmeName
。