При таком объединении вы будете дублировать данные столько раз, сколько найдете строк в других таблицах. Это хорошо, если у вас есть только 1 соответствующая строка в каждой таблице.
Запустите этот запрос без группировки, и вы получите представление о том, почему вы получаете одинаковый результат по всем показателям. Я бы, однако, предположил, что вы получите 10 в качестве количества для каждого поля (1 * 2 * 5)
Если вы хотите решить эту проблему, вам нужно вызвать подвыбор для каждого счета.
SELECT
s.`StatisticID`,
(SELECT COUNT(*) FROM Votes WHERE Votes.StatisticID = s.StatisticID) AS Score,
(SELECT COUNT(*) FROM Views WHERE Views.StatisticID = s.StatisticID) AS Views,
(SELECT COUNT(*) FROM Comments WHERE Comments.StatisticID = s.StatisticID) AS Comments,
FROM `Statistics` s
LIMIT 0, 10
Есть определенные проблемы с производительностью, если внешний результат велик. Вы могли бы немного оптимизировать его, присоединившись к одной из таблиц, однако я не уверен, достаточно ли у него будет достаточно разбора запросов, чтобы он запускался только один раз для каждого сгруппированного элемента. Надеюсь, так и будет. В противном случае вы можете разбить его на разные запросы.