일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 사랑
- Andrej Karpathy
- 한국어
- 딥러닝
- 강화학습
- 질문
- DeepLearning
- 번역
- 답변
- Hvass-Lab
- TensorFlow Tutorials
- 신경망
- Tutorial
- 매크로
- SAS
- cs231n
- 머신러닝
- Reinforcement Learning
- Artificil Intelligence
- SQL
- 세상
- tutorials
- neural networks
- 행복
- openai
- tensorflow
- 꿈
- machine learning
- 인공지능
- deep learning
- Today
- Total
Economics & Deeplearning
안녕하세요~ not exist 관련해서 질문드립니다! 본문
안녕하세요~ sas advanced 공부하다가 궁금한점이 있어서 질문드려요~~!
ONE
NUM | COUNTRY |
1 | CANADA |
2 | FRANCE |
3 | GERMANY |
4 | BELGIUM |
5 | JAPAN |
TWO
NUM | CITY |
3 | BERLIN |
5 | TOKYO |
이렇게 두 TABLE이 있을 때,
proc sql;
select country
from one
where not exists (select * from two where one.num=two.num);
quit;
이 실행되면,
country 값이 CANADA, FRANCE, BELGIUM이 나오는데요.
결과론적으로 보면 num=3,5를 제외한 country가 출력이 된 것 같은데..
제가 궁금한 건
not exists 다음에 ( ) 안을 보면
1) two에 있는 num은 one에도 전부 있고
2) two에 있는 모든 변수를 선택했기 때문에
결국 괄호안은 two table 그대로를 뜻한다고 생각을 했거든요.
그래서 one table과 two table에 num=3,5는 같아도, country와 city는 다른 값을 가지고 있기 때문에
where not exists (select * from two where one.num=two.num); 에서 걸러지는 값 없이
결국엔 결과 값이 one table에 있는 모든 country가 나와야 될거라고 생각을 했습니다..ㅜㅜ
제가 어느 부분을 잘못생각하고 있는걸까요..
답변부탁드립니다~~!
================================================================================
where not exists (select * from two where one.num=two.num);
서브 쿼리 two 에서 전부 읽어서 one과 two의 num이 같은 경우가 not exists 한 경우를
One에서 나타내는 거니까 1,2,4만 나오는 거 같습니다
'SAS > SAS 질문과 답변' 카테고리의 다른 글
macro에서 &을 여러번 사용할 때 질문드립니다. (0) | 2016.02.21 |
---|---|
소인수분해 (0) | 2016.02.21 |
그룹별 일련번호 부여 문의 (0) | 2016.02.21 |
필요한 날짜만 추출하는 방법이 있나요? (0) | 2016.02.21 |
t기의데이터와 t-1기 데이터를 사용해 변화율 변수를 생성하는 방법 질문드릴게요! (0) | 2016.02.21 |