SELECT invoice_id, sum_amount
FROM (SELECT invoice_id, SUM(amount) AS sum_amount
FROM invoice
GROUP BY invoice_id) AS TEMP_TABLE
WHERE sum_amount in (SELECT MAX(sum_amount)
FROM TEMP_TABLE);
Когда я попытался использовать TEMP_TABLE, произошла ошибка, и TEMP_TABLE не существует. Почему это не работает? Я думаю, что порядок выполнения «FROM», затем «WHERE», в то время был создан псевдоним таблицы.Как использовать псевдоним таблицы подзапроса в предложении WHERE в MySQL
я знаю, есть и другие способы, чтобы сделать это. но какое-либо объяснение, почему этот недействителен? Благодаря! – niu
Вам понадобится CTE (общее табличное выражение), чтобы повторно использовать производный псевдоним таблицы, а mysql не поддерживает CTE. – piotrm