MySQL объединяет select sum и select query - PullRequest
0 голосов
/ 28 мая 2018

Я хочу суммировать 4 ячейки для каждой строки на основе предыдущего запроса, который уменьшит выбор до важных строк.

По сути, мне нужно объединить эти два запроса (которые работают самостоятельно):

SELECT columnx, SUM(`column1`+ `column2` + `column3` + `column4`) as total 
                FROM table GROUP BY columnx


SELECT * FROM (SELECT * FROM table ORDER BY columny DESC LIMIT 5) t 
                ORDER BY CASE
                when `pos` = 'PG' then 1
                when `pos` = 'SG' then 2
                when `pos` = 'SF' then 3
                when `pos` = 'PF' then 4
                else 5
                end asc

Я пытался заменить «таблицу» вторым запросом, но, вероятно, это не правильный путь,так как я получаю ошибки здесь.

SELECT columnx, SUM(`column1`+ `column2` + `column3` + `column4`) as total FROM 
                  (( SELECT * FROM (SELECT * FROM table ORDER BY columny DESC LIMIT 5) t 
                  ORDER BY CASE
                  when `pos` = 'PG' then 1
                  when `pos` = 'SG' then 2
                  when `pos` = 'SF' then 3
                  when `pos` = 'PF' then 4
                  else 5
                  end asc) 
               GROUP BY columnx

1 Ответ

0 голосов
/ 28 мая 2018

Вы должны были создать псевдоним для блока, заменив table в первом запросе.

SELECT u.columnx, SUM(u.`column1`+ u.`column2` + u.`column3` + u.`column4`) as total 
FROM (SELECT t.* FROM (SELECT * FROM table ORDER BY columny DESC LIMIT 5) t 
ORDER BY CASE
 WHEN t.`pos`='PG' THEN 1
 WHEN t.`pos`='SG' THEN 2
 WHEN t.`pos`='SF' THEN 3
 WHEN t.`pos`='PF' THEN 4
ELSE 5
END ASC) u GROUP BY u.columnx
...