2014-04-15 2 views
0

이 질문은 SQL의 하위 쿼리에 대한 최근 질문의 뒷면에 있습니다. SO에 대한 사람들의 도움 덕분에 나는 일을한다고 생각하지만 실행되지 않는 코드 블록받은 : 난 그냥 마지막을 추가 할 수 있기 때문에하위 쿼리 쿼리가 작동하지 않는 것 같습니다.

SELECT usersAndDlCount.NIM_USER_ID, usersAndDlCount.NIM_EVENT_TYPE_ID 
FROM (SELECT VwNIMEventFct.NIM_USER_ID, COUNT(VwNIMEventFct.NIM_EVENT_TYPE_ID) 
    FROM RDMAVWSANDBOX.VwNIMEventFct 
    WHERE NIM_EVENT_TYPE_ID = 884 
    GROUP BY NIM_USER_ID) usersAndDlCount 
WHERE NIM_USER_ID >100 

이 아마도 가장 좋은 예가 아니다를 WHERE 하위 쿼리에서 절 그러나이 시점에서 나는 단지 그것이 작동하는 것을보고 싶다.

아무도 여기에 무엇이 있는지 알아볼 수 있습니까?

+0

당신은 어떤 결과를 기대 하는가? 부질의에는'NIM_EVENT_TYPE_ID'라는 필드가 없습니다. –

답변

3

COUNT(VwNIMEventFct.NIM_EVENT_TYPE_ID)에 이름을 지정해야합니다. 그렇지 않으면 SQL에서 이름을 생성합니다. 이 시도 :

SELECT usersAndDlCount.NIM_USER_ID, usersAndDlCount.NIM_EVENT_TYPE_ID 
FROM (SELECT NIM_USER_ID, COUNT(NIM_EVENT_TYPE_ID) AS NIM_EVENT_TYPE_ID 
    FROM RDMAVWSANDBOX.VwNIMEventFct 
    WHERE NIM_EVENT_TYPE_ID = 884 
    GROUP BY NIM_USER_ID) usersAndDlCount 
WHERE NIM_USER_ID >100 
+0

아하나. 곧 다시 받아 주셔서 감사합니다. –

+0

아, 감사합니다. 어제 시도했을 때 시간 제한이 끝날 때까지 기다려야했습니다. –

1

조회에, 서브 쿼리에 NIM_EVENT_TYPE_ID 존재하지 않는 필드를 참조한다. 당신은 단지 사용자가 원하는 경우, 당신은 하위 쿼리가 필요하지 마십시오 having 또는 where 절은 수행합니다

는 는
SELECT ef.NIM_USER_ID, COUNT(ef.NIM_EVENT_TYPE_ID) as cnt 
    FROM RDMAVWSANDBOX.VwNIMEventFct ef 
    WHERE ef.NIM_EVENT_TYPE_ID = 884 AND NIM_USER_ID > 100 
    GROUP BY ef.NIM_USER_ID; 
+0

질문에 대답하지 않습니다. OP는 작동 방식을 알고 싶어했기 때문에 서브 쿼리를 구체적으로 원했습니다. –

+0

위 쿼리에서 AND 키워드가 누락되었습니다. 편집 할 수 없었습니다 (편집이 6 자 미만 이었기 때문에). –

관련 문제