Tak więc z komentarzy i dodania SqlFiddle wygląda na to, że chcesz utworzyć podzielony na partycje numer wiersza z priorytetem US na platformę, a następnie wybrać pierwszy rekord. Jednym ze sposobów na partycjonowanie numerów wierszy w mysql jest użycie zmiennych. Oto przykład:
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
Zasadniczo dzieli to numer rzędu według platformy, porządkuje US przed jakimkolwiek innym terytorium, a następnie wybiera pierwszy rząd dla każdej platformy. Jedynym pytaniem/sztuczką jest to, jak wybrać, który zwracać, gdy USA nie są dostępne dla platformy, po prostu rosnącej kolejności alfabetycznej terytorium_id?