Я думаю, вы хотите объединить два результата с помощью SIDO, а затем использовать что-то вроде:
select f.RN, f.SIDO, f.SIGUNGU, f.CITY_IDX, s.SIDO, s.SIGUNGU, s.TAX
from (SELECT ROWNUM rn, a.sido, a.sigungu, a.city_idx
FROM (SELECT bk.sido, bk.sigungu, bk.cnt, lot.cnt, ROUND((bk.cnt + kfc.cnt +
mcd.cnt)/ lot.cnt, 2) city_idx
FROM
(SELECT sido, sigungu, COUNT(gb) cnt
FROM fastfood
WHERE gb = 'bugerking'
GROUP BY sido, sigungu, gb) bk,
(SELECT sido, sigungu, COUNT(gb) cnt
FROM fastfood
WHERE gb = 'KFC'
GROUP BY sido, sigungu, gb) kfc,
(SELECT sido, sigungu, COUNT(gb) cnt
FROM fastfood
WHERE gb = 'mcdonalds'
GROUP BY sido, sigungu, gb) mcd,
(SELECT sido, sigungu, COUNT(gb) cnt
FROM fastfood
WHERE gb = 'lotteria'
GROUP BY sido, sigungu, gb) lot
WHERE bk.sido = kfc.sido
AND bk.sigungu = kfc.sigungu
AND bk.sido = mcd.sido
AND bk.sigungu = mcd.sigungu
AND bk.sido = lot.sido
AND bk.sigungu = lot.sigungu
ORDER BY city_idx DESC ) a) f,
(SELECT SIDO, SIGUNGU,ROUND(SAL/PEOPLE,2) tax
FROM TAX
GROUP BY SIDO, SIGUNGU,SAL,PEOPLE) s
where f.sido = s.sido;