SQL метод объединения двух запросов - PullRequest
0 голосов
/ 06 мая 2020
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

первый запрос

SELECT SIDO, SIGUNGU,ROUND(SAL/PEOPLE,2) tax
FROM TAX
GROUP BY SIDO, SIGUNGU,SAL,PEOPLE

второй запрос

Мне нужен консольный результат

RN, (первый) SIDO, (первый) SIGUNGU, CITY_IDX, (второй) SIDO, (второй) SIGUNGU, TAX

Заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Я думаю, вы хотите объединить два результата с помощью 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...