SELECT id, MAX(date) FROM table GROUP BY id ORDER пишется после, а не перед. Смысл группировки в том, чтобы сгруппировать несколько полей, у которых одинаковые значения. Группируются только те строки, у которых все поля (кроме тех, которые в агрегатных функциях) идентичны.