SQL delete where not in (...) query not behaving as expected
If you want to purge an outdated data then your query is a bit complicated:
DELETE FROM fares AS f1 
  LEFT JOIN ( SELECT origin_id
                   , destination_id
                   , market_id
                   , cabin
                   , tripType
                   , max(created_at) AS maxDate 
                FROM fares        
               GROUP BY origin_id
                      , destination_id
                      , market_id
                      , cabin
                      , tripType
            ) AS f2  ON f2.origin_id      = f1.origin_id 
                    AND f2.destination_id = f1.destination_id 
                    AND f2.market_id      = f1.market_id 
                    AND f2.cabin          = f1.cabin 
                    AND f2.tripType       = f1.tripType
                    AND f2.maxDate        = f1.created_at  /* was omitted */
      WHERE f2.maxDate IS NULL
)