したがって、コメントとSqlFiddleの追加から、実際には、プラットフォームごとにUSを優先するパーティション化された行番号を作成し、最初のレコードを選択したいようです。 mysqlでパーティション化された行番号を実行する1つの方法は、ここで変数を使用することです。例:
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フィドル: http://sqlfiddle.com/#!9/81c3b6/12 >
基本的に、これは行番号をプラットフォームごとに分割し、他の地域の前にUSを注文してから、各プラットフォームの最初の行を選択します。 1つの質問/トリックは、米国がプラットフォームで利用できない場合に、territory_idのアルファベットの昇順でどちらを返すかをどのように選択するかです。