我需要计算一个表的两个构成行的一列之间的差异。 表结构如下(它是一个演示):
Table:
Id Name Age
1 xman 30
2 yman 40
3 zman 55
所以,在这张表中,我需要计算年龄之间的差异,如果Age大于10,那么我需要获取该人名。 是否可以通过SQL? 我该怎么做才能帮忙。
答案 0 :(得分:1)
在MySQL中,您可以使用User Defined Variables获取上一行值:
SELECT Name
FROM
( SELECT T.*,
@prev as previousAge,
@prev:=Age
FROM T,(SELECT @prev:=NULL) as t1
ORDER BY ID
) as T3
WHERE Age-previousAge>10
答案 1 :(得分:0)
如果ID是连续的,或者在计算列上,您必须根据ID将表连接到自身:
select ...
from mytable a join mytable b where b.id = a.id - 1
where ...