Поскольку вы получите ту же ошибку в SQL Server, а также во всех других основных СУБД (исключая причуду MySQL здесь): у вас есть столбцы, которые не включены в предложение GROUP BY
, или часть совокупности, поэтомусистема не знает, что с ними делать (MySQL возвращает случайную строку для этих столбцов, я думаю, что, вероятно, не то, что вы хотите).
Непонятно, из чего вы пытаетесь получить «сумму сумм», поскольку вы перечисляете только одну SUM()
.Предполагая, что TableC
является единственной таблицей, которую нужно агрегировать, используйте выражение общей таблицы (CTE), например:
WITH Summed_TableC (column1, summedColumn) as (SELECT column1, SUM(column3)
FROM TableC
GROUP BY column1)
SELECT a.Column1, b.*, c.summedColumn
FROM schema.TableA as a
JOIN schema.TableB as b
ON b.column2 = a.column2
JOIN Summed_TableC as c
ON c.column1 = a.column1
О - никогда не используйте синтаксис неявного соединения.Вы точно определили, из каких таблиц и из каких столбцов происходят, но если нет, это просто сбивает с толку.Избегайте этого, явно JOIN
используя таблицы и их столбцы.