Ainsi, d'après les commentaires et l'ajout de SqlFiddle, il semble en fait que vous souhaitiez créer un numéro de ligne partitionné avec une priorité sur US par plate-forme, puis sélectionner le premier enregistrement. Une façon de faire des numéros de ligne partitionnés dans mysql est d'utiliser des variables, voici un exemple :
SELECT
territory_id
,platform_type_id
,store_url
FROM
( SELECT
*
,@PlatFormRowNum:= IF(@prevplatform = platform_type_id, @PlatFormRowNum + 1, 1) as PlatformRowNum
,@prevplatform:= platform_type_id
FROM
main_itemmaster m
CROSS JOIN (SELECT @prevplatform:='',@PlatFormRowNum=0) var
ORDER BY
platform_type_id
,CASE WHEN territory_id = 'US' THEN 0 ELSE 1 END
,territory_id
) t
WHERE
t.PlatformRowNum = 1
ORDER BY
t.platform_type_id
SQL Fiddle :http://sqlfiddle.com/#!9/81c3b6/12
Fondamentalement, cela partitionne le numéro de ligne par plate-forme, commande les États-Unis avant tout autre territoire, puis sélectionne la première ligne pour chaque plate-forme. La seule question/astuce est de savoir comment choisir lequel renvoyer lorsque les États-Unis ne sont pas disponibles pour la plate-forme, simplement l'ordre alphabétique croissant du territorial_id ?