MySQL在同一个表中的同一列下减去行但具有不同的主键

时间:2016-03-16 12:08:25

标签: mysql

我是这个论坛和MySQL的新手。我的问题与以前的帖子类似,但是想知道这是否可以用代码解决。

我在mysql中有表,主键为id,Month(日期格式)和Site Count。 现在我想要一个表输出,其中包含月份,站点数和从站点数计算的计数之间的差异。

ID    Month         Site Count
1     31-01-2014    37
256   28-02-2014    37
512   31-03-2014    37
768   30-04-2014    41
1024  31-05-2014    38
1280  30-06-2014    42
1536  31-07-2014    42

注意:原因ID不按顺序是因为它是从主表派生的。 网站计数是主表计数(不同site)的导出值,为site count

现在我想要创建如下表格,无法使用Id字段

计算
ID   Month      Site Count  Diff
1    31-01-2014    37        0
256  28-02-2014    37        0
512  31-03-2014    37        4
768  30-04-2014    41        2
1024 31-05-2014    43        1
1280 30-06-2014    44        2
1536 31-07-2014    46

无法计算最后一个值,因为前面有值 非常感谢您的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用变量或相关子查询/连接执行此操作。这是后一种方法:

select t.id, t.month, t.sitecount, (next_sitecount - sitecount) as diff
from (select t.*,
             (select t2.sitecount
              from t t2
              where t2.month > t.month
              order by month
              limit 1
             ) as next_sitecount
      from t
     ) t;