mysql вычесть сумму всех строк из первого ряда - PullRequest
0 голосов
/ 11 марта 2020

если у меня есть следующие данные

index | value1 | value2 | value3 |...
  1   |  100   |   200  |   300  |...
  2   |   6    |    30  |    12  |...
  3   |   23   |    11  |    22  |...
....

Всего 150 столбцов, и будет также строка LOTS. Как лучше всего получить сумму всех строк, кроме индекса = 1, и вычесть сумму из строки индекса 1.

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

есть ли хорошие mysql запросы, которые позволяют мне делать такие вещи

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Нормализованная схема может выглядеть примерно так:

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  

Попытка продолжить работу с существующей схемой ... ну, decorum запрещает дальнейшие комментарии.

0 голосов
/ 11 марта 2020

С условным агрегированием вы можете просто сделать что-то вроде этого:

SUM(CASE WHEN id = 1 THEN 1 ELSE -1 END * value1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...