sql数据库对数据进行数学运算

时间:2015-02-03 11:28:11

标签: mysql sql

我有一个包含行和列数据的数据库,行,col数据是一些求和数据(即原始数据中的1 3 5 7 = 1 2 2 2)。

我想通过减法得到原始数据,例如。行和列中的val = r1c2-r1c1等。这是否可以在sql中进行,而不必为每个行/列执行大量单独的select语句?

我想对数据库中的所有行和列执行此操作,如下面的伪代码

a[ 1,3,5,7;
   2,5,6,7 ]; 

for(i=0;i<size(a,1); i++) 
     for(j=0;j<size(a,2)-1; j++)
          b(i,j)=a(i,j+1)-a(i,j);

1 个答案:

答案 0 :(得分:2)

试试这个。

SELECT col1,
       col2 - col1 col2,
       col3 - col2 col3,
       col4 - col3 col4
FROM   (SELECT 1 col1,
               3 col2,
               5 col3,
               7 col4) a 

更新:相同的查询适用于多行

SELECT col1,
       col2 - col1 col2,
       col3 - col2 col3,
       col4 - col3 col4
FROM   (SELECT 1 col1,3 col2,5 col3,7 col4
        UNION ALL
        SELECT 1  col1,3  col2,9  col3,11 col4
        UNION ALL
        SELECT 1 col1,3 col2,5 col3,7 col4) a