Почему запрос возвращает все записи, если использовать IN вместо = в MySQL?

1,00
р.
SELECT customer, SUM(price) FROM tab GROUP BY customer HAVING SUM(price) IN (SELECT max(sm) FROM ( SELECT sum(price) AS sm FROM tab GROUP by customer ) AS t)
Почему такой запрос возвращает все записи, но если использовать = вместо IN, то все работает корректно?
Так же, если отдельыно выполнить SELECT max(sm) FROM ( SELECT sum(price) AS sm FROM tab GROUP by customer ) AS t и вставить результат в первоначальный запрос, то все будет корректно.

Ответ
Ответ основан на комментарии пользователя @Mike.
Судя по багтрекеру MySQL: https://bugs.mysql.com/bug.php?id=34874 – это баг, обнаруженный в 2008 году. Он до сих пор не исправлен. Проблемные версии MySQL: 5.0+
В качестве решения предлагается использовать оператор = вместо IN.