Несколько синтаксических ошибок, в том числе:
HAVING пункт перед GROUP BY
отсутствует псевдоним столбца
Я пытался исправить эти и другие:
SELECT
se.name,
se.stock_ex_id,
sl.stock_symbol,
SUM(t.shares) AS total_trade_volume
FROM stock_exchange se
JOIN trade t ON se.stock_ex_id = t.stock_ex_id
JOIN stock_listing sl ON sl.stock_id = t.stock_id AND sl.stock_ex_id = t.stock_ex_id
GROUP BY se.stock_ex_id, se.name, sl.stock_symbol
HAVING SUM(t.shares) IN (
SELECT MAX(total_shares)
FROM (
SELECT stock_ex_id, stock_id, SUM(shares) AS total_shares
FROM trade
WHERE stock_ex_id IS NOT NULL
GROUP BY stock_ex_id, stock_id
)
)
ORDER BY se.name, sl.stock_symbol
Кроме того, хотя синтаксически это не так, предложение IN
бесполезно, и вместо него вы можете использовать =
.