Вы неправильно поняли. Модификатор DISTINCT применяется ко всей строке - он гласит, что в наборе результатов не будет возвращено две одинаковые строки.
Глядя на ваш SQL, какое значение из нескольких доступных вы ожидаете увидеть возвращенным в столбце созданный_каталог (например)? Было бы невозможно предсказать результаты запроса в письменном виде.
Кроме того, вы дважды используете profile_comments в вашем SELECT. Похоже, вы пытаетесь подсчитать, сколько раз каждый пользователь прокомментировал. Если это так, то вы хотите использовать AGGREGATE-запрос, сгруппированный по user_id и включающий только те столбцы, которые однозначно идентифицируют пользователя вместе с COUNT комментариев:
ВЫБРАТЬ user_id, COUNT (*) ОТ profile_comments WHERE profile_id = 1 GROUP BY user_id
Вы можете добавить объединение для пользователей, чтобы получить имя пользователя, если хотите, но, по логике вещей, ваш результирующий набор не может включать другие столбцы из profile_comments и по-прежнему генерировать только одну строку для user_id, если эти столбцы также не агрегированы каким-либо образом:
ВЫБРАТЬ user_id, MIN (созданный_at) AS Самый ранний, MAX (созданный_at) AS Самый последний, COUNT (*) ОТ profile_comments WHERE profile_id = 1 GROUP BY user_id