2011-12-16 8 views
0

私はそれは次のように2つのサブクエリに参加するOracle 10gのDBにクエリを実行しようとしています:外側には、サブクエリでグループに参加

SELECT * FROM(
select count(y), x from a group by y) t1 
full join 
(select count(z), x from b group by z) t2 
on (t1.x = t2.x) 

問題は、出力がとしてxの二つの異なる列を示していることですそれは次のとおりです:

y   z   x   x1   
------------------------------------------- 
    2   4   1   1   
    3   (null)  2   (null)  
    2   (null)  3   (null)  
    8   (null)  4   (null)  
    (null)  4   (null)  5   
    (null)  6   (null)  6 

誰でも私を助けることができますか?前もって感謝します!

+2

あなたが/欲求を期待する結果どのようなご提示ください。私はあなたがUNIONを望んでいると思っていますが、あなたが実際に必要な結果を知るまで私は確信が持てません。 – MatBailie

+0

x属性を使用してテーブルを結合する場合は、共通の列が1つしかないため、共用体ではありません。私は問題を解決しますが、x属性の完全結合がなぜ2つではなく1つの列を生成しないのか分かりません – biggtor

答えて

1

私が何をしたいことがあると思われる:

SELECT coalesce(t1.x, t2.x) x, t1.y, t2.z 
FROM (select count(y), x from a group by x) t1 
full join (select count(z), x from b group by x) t2 on (t1.x = t2.x)