1. Таблица (Город, Данные1, Данные2), 2. Таблица (Город, Кол-во) - "Кол-во" это проще говоря ROW_NUM для Таблицы1
Можно ли запаковать все в один запрос, чтобы было сопоставление с городом и вывод определенного кол-ва строк по этому городу. И так по всему списку
SELECT * FROM(
SELECT
ROW_NUMBER() OVER(PARTITION BY CITY ORDER BY CITY) row_num,
DATA1,
DATA2,
CITY
FROM TABLE1)t1
WHERE t1.row_num BETWEEN 1 AND (select t2.COUNT from TABLE2 t2 where t1.CITY = t2.CITY);