求如何用mysql实现计算上下两条记录的差的方法。
如下参考:
1.创建一个表并插入数据,如下图所示。
2.按字段名顺序从表名中选择*,如下图。
3.根据班级分组程度(groupby),将数据分为三类:肉类、蔬菜和水果。
4.按类分组后,对结果进行处理,分别计算三个类的总金额。在本例中,sum是mysql提供的一个内置函数(聚合函数),它是统计组合的。
5.分组之后,可以使用聚合函数执行一系列查询操作,询问每个类中有多少个查询操作。
6.组后面跟着过滤器,如下所示。
方法挺多的,很多是采用排序直接对等连接,这样对于主键聚集索引比较快的。
----
我提供的不是排序对等 方式,而是大范围连接检索最小距离的方式。
SELECT
A.FID,A.Fnum,MIN(A.Fid-B.Fid) as 差值
FROM test.cte A
INNER JOIN test.cte B on(A.FID>B.FID)
GROUP BY A.FID,A.Fnum
ORDER BY A.Fid Desc
---
执行结果:
FID Fnum 差值
-------------------------
'9323', '10', '14'
'9309', '10', '1'
'9308', '10', '47'
'9261', '10', '31'
'9230', '10', '23'
'9207', '10', '16'
'9191', '10', '26'
'9165', '10', '14'