SQL中两列构造行的差异

时间:2014-05-30 05:47:59

标签: mysql sql

我需要计算一个表的两个构成行的一列之间的差异。 表结构如下(它是一个演示):

Table:

 Id Name Age

 1  xman  30

 2  yman  40

 3  zman  55

所以,在这张表中,我需要计算年龄之间的差异,如果Age大于10,那么我需要获取该人名。 是否可以通过SQL? 我该怎么做才能帮忙。

2 个答案:

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

SQLFiddle demo

答案 1 :(得分:0)

如果ID是连续的,或者在计算列上,您必须根据ID将表连接到自身:

select ...
from mytable a join mytable b where b.id = a.id - 1
where ...