งั้นตอบคำถาม ว่า ที่เรียงไม่เหมือนกัน เพราะมันมี GROUP BY `cate_id` มาดักก่อน....
ในความเข้าใจของผม เมื่อ GROUP BY ค่าของ cate_id มีซ้ำกันจะถูกจัดกลุ่ม
หากจะใช้ GROUP BY ค่าของ cate_id ตัวที่จะนำมาเป็น ORDER ก็น่าจะควรเป็น cate_id
SELECT * FROM `news` GROUP BY `cate_id` ORDER BY `cate_id` DESC
เพราะการ group by ค่า news_time ที่ได้ออกมา จะเป็นค่าของ id ตัวล่าสุด
ภายในกรุ๊ปนั่น ๆ จะไม่เรียงค่าให้ตามที่เราคิด
ลองเอา
SELECT * FROM `news` GROUP BY `cate_id` ORDER BY `news_time` DESC