2011-04-14 59 views
0

在MySQL如何從SQL中的前一行添加/減去?

Id AA BBB 
A 45 123 
B 52 120 
C 40 135 

我怎麼會得到

B_A 7 
A_C 5 

首先需要通過BBB升序 再減去52-45排序。 B_A級聯B和A

如何在SQL中添加/減去前一行的數據?

如果我需要爲B單獨分類然後A,我會如何添加這個。

+0

Id列是否始終完全連續(即從一行到下一行沒有間隔)? – Thomas 2011-04-14 18:29:20

+0

是的,謝謝你的幫助 – Merlin 2011-04-14 18:34:40

+0

你如何得到5你的輸出中的第二行? – 2011-04-14 19:01:05

回答

2
SELECT concat(t1.id , '_', t2.id, ' ', t1.aa - t2.aa) 
FROM table t1 
     INNER JOIN (SELECT Max(t2.id) prev_id, 
          t1.id 
        FROM table t1 
          INNER JOIN table t2 
          ON t1.id > t2.id 
        GROUP BY t1.id) prev 
     ON t1.id = prev.id 
     INNER JOIN table t2 
     ON t2.id = prev.prev_id 
+0

有不止兩行。該死,對不起加入q – Merlin 2011-04-14 18:39:43

+0

@ user428862我忘記了Group By Clause,並讓Concat工作。查看更新後的答案 – 2011-04-14 18:58:44

+0

有兩行以上... 75 -80。行。 – Merlin 2011-04-15 16:25:32

相關問題