@NMAN la subquery non restituisce un solo record

@FAIEL potresti riscriverla come join tra la query esterna che già fai e la query con group by, una cosa del genere:

SELECT a.`order_id` , a.`order_status_id`
FROM `order_history` AS a
INNER JOIN (
SELECT MAX( order_history_id )
FROM `order_history`
GROUP BY `order_id`
) AS b
ON a.order_id = b.order_id

Se usi MySQL 5.6 (o MariaDB 5.3) dovrebbe riscriverla internamente, ma io questa modifica la farei comunque.