Sum (Column1) и Show в Column2 в SQL - PullRequest
0 голосов
/ 10 октября 2018

Нужен запрос для следующего вывода.

ID  Column1  Column2
1     50       220
2     60       220
3     40       220 
4     10       220
5     25       220
6     35       220

Мне нужен запрос SELECT для суммирования (column1) и отображения результата в column2

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Это можно легко решить с помощью Функции окна в версии MySQL> = 8.0.

В более старых версиях MySQL вы можете получить общий Sum отдельно в производной таблице .Затем выполните Cross Join с вашей основной таблицей и поля Select соответственно:

SELECT t1.ID, 
       t1.Column1, 
       t2.sum_total AS Column2 
FROM your_table AS t1 
CROSS JOIN (SELECT SUM(Column1) AS sum_total
            FROM your_table) AS t2 
ORDER BY t1.ID ASC 

Обратите внимание , что подход на основе производной таблицы будет эффективнее, чем использование подзапроса в Select.При таком подходе вычисление Sum произойдет только один раз;в то время как другой подход будет вычисляться для каждой строки.

Rextester DEMO

Демонстрационный вывод:

enter image description here

0 голосов
/ 10 октября 2018

Вы можете использовать оконную функцию:

select t.*, sum(col1) over ()  as col2
from table t;

Однако MySQL не имеет функциональности окна, если вы работаете с более старой версией, поэтому вы можете использовать subquery вместо:

select t.*, (select sum(t1.col1) from table t1) as col2
from table t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...