SELECT SUM(amount)
FROM (
SELECT amount
FROM transactions
ORDER BY
order
LIMIT 50, 1000000000000
) q
Обратите внимание, что ваш оригинальный запрос:
SELECT SUM(amount)
FROM transactions
ORDER BY
order
LIMIT 0, 50
не делает то, что вы, вероятно, думаете, что делает. Это синоним этого:
SELECT a_sum, order
FROM (
SELECT SUM(amount) AS a_sum, order
FROM transactions
) q
ORDER BY
order
LIMIT 0, 50
Внутренний запрос (который обычно не работает в любом другом движке, но работает в MySQL
из-за его синтаксиса расширения GROUP BY
) возвращает только 1
записей.
ORDER BY
и LIMIT
затем применяются к этой одной агрегированной записи, а не к записям transactions
.