2013-08-07 5 views
0

이로 인해 더 많은 문제가 발생합니다.SQL Plus 쿼리 - 다중 테이블 쿼리

나는 다음과 같은 샘플 테이블이있다 : 나는 앞으로 다시가는거야

_____________________________________ 
| Name | Number | Count(Number) | 
|________|___________|_______________| 
| Alice |  1  |  2  | 
| Bob |  2  |  0  | 
|________|___________|_______________| 

그러나 나는이 그렇게 안 확신 :

____________________  ____________  
| Name| Number |  | Number | 
|_______|__________|  |__________| 
| Alice |  1 |  | 1  | 
| Bob |  2 |  | 1  | 
|_______|__________|  |__________| 

나는 나의 결과가되고 싶어 교활한. 나는 뭔가를 놓친다 고 생각한다. 당신은 가입과 통합이 필요

select name, number count(t2.number) 
from table1 t1, 
table2 t2 
where t1.number = t2.number (+) 
group by t1.number; 
+2

왜 앨리스 2의 수를 않고 밥은 아무 상관이 없다? – Taryn

+0

테이블이 잘못 그렸습니다. – user1375026

+0

여전히 의미가 없습니다. 테이블에있는 행을 어떻게 계산하려고합니까? – CodeMonkey

답변

1

:

나는 고든의 답변을 수정했습니다. 일치가 없을 때 당신이 0을 얻을 수 있도록 count()는 두 번째 테이블에 NULL이 아닌 값을 계산하고,

select name, number, count(t2.number) 
from table1 t1 left outer join 
    table2 t2 
    on t1.number = t2.number 
group by t1.name, t1.number; 

을 그리고 : 그러나,이 left outer join 모든 행을 계속 할 필요가 가입 할 수 있습니다.

+0

내 질문을 업데이트했습니다. 당신의 대답을 반영합니다. 문제는 현재 열이 CLOB (어느 것이지)인지, 열이 그룹화되는 것을 허용하지 않는 것입니다. – user1375026