简体   繁体   English

SQL 两个查询组合方法

[英]SQL two queries combine method

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

first query第一次查询

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

second query第二次查询

I want console result我想要控制台结果

RN,(first)SIDO,(first)SIGUNGU,CITY_IDX,(second)SIDO,(second)SIGUNGU,TAX RN,(第一)SIDO,(第一)SIGUNGU,CITY_IDX,(第二)SIDO,(第二)SIGUNGU,TAX

Thanks in advance.提前致谢。

I guess you want join two result using SIDO, then using something like:我猜你想使用 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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM