GROUP BY идет с функцией AGGREGATE ... это означает, что вы хотите сложить значения в группе или найти самые большие или самые маленькие в группе и т. Д.
DISTINCT удалит дублирующиеся строки.
в вашем запросе, возможно, вы получаете кучу не очень похожих строк, которые все имеют одинаковый group_id ... если это так, то вам нужно решить, какую из этих строк вы действительнохотите увидеть.
может быть, вам нужен самый новый или тот, который имеет самое длинное имя, или что-то в этом роде.
для группировки, вы должны выбрать столбец, например, созданный и сказать что-то вродеMAX (созданный) в списке выбора, затем группируйте все остальные столбцы в списке выбора, чтобы найти строки, которые соответствуют друг другу (кроме созданных в), и возвращайте их только один раз с наибольшим значением для созданного в ... hopeэто имеет смысл.
edit:
очень простой пример для идентификатора группы и даты создания.(вы можете добавлять новые столбцы по мере необходимости - по одному в группе по списку для каждого в списке выбора:
SELECT groupid, max( createdate )
FROM ClassAd
GROUP BY groupId