Немного придумано, возможно ...
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,name VARCHAR(12) NOT NULL UNIQUE
,country VARCHAR(12) NOT NULL
);
INSERT INTO my_table VALUES
(1,'alice','usa'),
(2,'bob','usa'),
(3,'chad','russia'),
(4,'derek','china'),
(5,'ethan','usa'),
(6,'fred','usa');
SELECT id,name,country FROM (SELECT *, @i:=@i+1 i FROM my_table,(SELECT @i:=0) vars ORDER BY country = 'usa') a ORDER BY MOD(i,4), id;
+----+-------+---------+
| id | name | country |
+----+-------+---------+
| 2 | bob | usa |
| 3 | chad | russia |
| 5 | ethan | usa |
| 4 | derek | china |
| 6 | fred | usa |
| 1 | alice | usa |
+----+-------+---------+
6 rows in set (0.00 sec)
Просматривая комментарии, кажется, что вы действительно ищете что-то вроде этого ...
SELECT x.*
FROM my_table x
JOIN my_table y
ON y.country = x.country
AND y.id <= x.id
GROUP
BY x.id
ORDER
BY COUNT(*), country;
+----+-------+---------+
| id | name | country |
+----+-------+---------+
| 4 | derek | china |
| 3 | chad | russia |
| 1 | alice | usa |
| 2 | bob | usa |
| 5 | ethan | usa |
| 6 | fred | usa |
+----+-------+---------+