mysql从第一行减去所有行的总和

mysql从第一行减去所有行的总和,mysql,Mysql,如果我有以下数据 index | value1 | value2 | value3 |... 1 | 100 | 200 | 300 |... 2 | 6 | 30 | 12 |... 3 | 23 | 11 | 22 |... .... 总共有150列,还有很多行。最好的方法是获取除index=1之外的所有行的总和,然后从index1的行中减去总和 ie: value1 = 100-6-23-...

如果我有以下数据

index | value1 | value2 | value3 |...
  1   |  100   |   200  |   300  |...
  2   |   6    |    30  |    12  |...
  3   |   23   |    11  |    22  |...
....
总共有150列,还有很多行。最好的方法是获取除index=1之外的所有行的总和,然后从index1的行中减去总和

ie: 
value1 = 100-6-23-...-...-...
value2 = 200-30-11-...-...-...
value3 = 300-12-22-...-...-...
....

有没有什么好的mysql查询可以让我通过条件聚合做这样的事情?你可以这样做:

SUM(CASE WHEN id = 1 THEN 1 ELSE -1 END * value1)

规范化模式可能看起来有点如下所示:

index product stock
    1 value1    100 
    2 value1      6    
    3 value1     23   

    1 value2    200
    2 value2     30  
    3 value2     11  

    1 value3    300  
    2 value3     12  
    3 value3     22  

正在尝试继续使用现有架构。。。好吧,礼节禁止进一步评论。

150栏可能是设计拙劣的症状在这种情况下,几乎可以肯定的是,我知道这是一个非常拙劣的设计,我只是想把它作为一种实践@strawberry这太棒了。因此,练习改进你的模式;这才是真正的技能。嗯,那样的话,我该如何更好地构建它,value1、value2、value3应该是产品名称,下面的数字是库存水平。基本上,我想把第一行作为baed级别,子动作evreything得到一个current numbers anks作为回复,对于这个,你可以计算值1的和,但是如果像我说的那样有150列,我不能做150列,当有n列的时候,有什么方法可以做吗?正如其他人已经说过的,如果您有150个这样的列,那么您的数据库设计可能有问题。如果您最终完成了这样一个预先存在的项目,那么处理该项目的唯一方法就是分别处理每一列。