GROUP BY è concepito per essere utilizzato con funzioni di aggregazione, altrimenti seleziona arbitrariamente una riga per gruppo. La tua soluzione (sopra e nella tua risposta personale) funziona perché MySQL sembra mantenere la prima riga di ogni gruppo, ma non hai la certezza che ciò accadrà sempre.
Puoi ottenere la data dell'ultimo commento per ogni post_id
così.
select post_id, MAX(datetime) as latest from post_comments group by post_id
Usalo per selezionare l'ultimo commento:
SELECT t1.* FROM post_comments AS t1
JOIN (
SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest