Mysql找到当前和最后一小时之间的差异,并使用当前小时行进行打印

时间:2013-10-25 20:10:32

标签: mysql sql select hour

需要获得当前小时和最后一小时之间两个值的差异,如下所述。

作为第一步,我尝试查找当前小时值但不确定如何从中减去第二个最后一小时值并显示当前小时行

    select mmeName,startDate,max(startTime),endDate,max(endTime),c_ratio,set_time

    from attach 

    where type='INIT' and endDate=Date(now())

    group by mmeName

我的现有表格格式和所需输出将在附加图像中捕获。

任何帮助/建议都将不胜感激!

enter image description here

1 个答案:

答案 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