GROUP BY är avsedd att användas med aggregeringsfunktioner, annars väljer den godtyckligt en rad per grupp. Din lösning (ovanför och i ditt självsvar) fungerar eftersom MySQL verkar behålla den första raden i varje grupp, men du är inte garanterad att detta alltid kommer att hända.
Du kan få datumet för den senaste kommentaren för varje post_id
så här.
select post_id, MAX(datetime) as latest from post_comments group by post_id
Använd den för att välja den senaste kommentaren:
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