MySQL 'невозможно повторно открыть (временную) таблицу) - PullRequest
0 голосов
/ 09 июля 2020

Попытка нормализовать столбец (wgt) путем присоединения к результату встроенного запроса следующим образом:

select a.monthEnd, ticker, wgt/totWgt 
from hold a
inner join ( 
            select monthEnd, sum(wgt*(1+totRet)) as totWgt
            from hold
            group by monthEnd ) tot
            on a.monthEnd = tot.monthEnd

Получите следующую ошибку:

Error Code: 1137. Can't reopen table: 'a' 0.00023 sec

Я прихожу с SQL Сервера и не знаком. В чем именно заключается проблема и / или способ решения проблемы? Обе упомянутые таблицы являются временными таблицами, созданными в сохраненном pro c и запущенном MySQL 8.0.

1 Ответ

0 голосов
/ 09 июля 2020

Используйте предложение WITH ,

WITH hold as 
(SELECT monthEnd, wgt, totWgt , totRet, ticker FROM <actual table>)
select a.monthEnd, ticker, wgt/totWgt 
from hold a inner join 
(select monthEnd, sum(wgt*(1+totRet)) as totWgt from hold group by monthEnd ) tot
on a.monthEnd = tot.monthEnd;
...