• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

고급문제풀이set1 3번 문제

23.10.25 01:00 작성 조회수 127

0

해당문제 쿼리에 대해 manager 철자를 수정시 작동한다고 피드백을 주셨는데 작동이 되지 않아서 어디가 오류가 있는지 여쭤보고자 질문드립니다

 

SELECT C.company_code,

C.founder,

COUNT DISTINCT(L.lead_manager_code),

COUNT DISTINCT(S.senior_manager_code),

COUNT DISTINCT(M.manager_code),

COUNT DISTINCT(E.employee_code)

FROM Company C

INNER JOIN Lead Manager L ON C.company_code = L.company_code

INNER JOIN Senior Manager S ON S.company_code = L.company_code

INNER JOIN Manager M ON M.company_code = S.company_code

INNER JOIN Employee E ON E.company_code = M.company_code

GROUP BY C.Company_code, C.founder

ORDER BY C.company_code

 

 

추가로, inner join을 하는 부분이 1과 2중 어떤 부분이 왜 맞는지도 헷갈려서 설명을 부탁드리겠습니다

 

감사합니다

 

  1. INNER JOIN Lead_Manager l ON c.company_code = l.company_code

    INNER JOIN Senior_Manager s ON c.company_code = s.company_code

    INNER JOIN Manager m ON c.company_code = m.company_code

    INNER JOIN Employee e ON c.company_code = e.company_code

 

  1.  

    INNER JOIN Lead Manager L ON C.company_code = L.company_code

    INNER JOIN Senior Manager S ON S.company_code = L.company_code

    INNER JOIN Manager M ON M.company_code = S.company_code

    INNER JOIN Employee E ON E.company_code = M.company_code

 

답변 2

·

답변을 작성해보세요.

0

테이블명이 'Lead Manager'가 아니라 Lead_Manager 처럼 중간에 공백 없이 한 단어로 붙어있는 형태입니다. 공백이 있을 경우 쿼리 인식이 제대로 안 됩니다. 테이블명들이 전부 정확히 어떻게 되어있는지 다시 한 번 확인 후 수정해 보시길 바랍니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.27

안녕하세요, David Lee 님. 인프런 AI 인턴이에요.

제시해주신 쿼리문을 살펴보면, manager에서 “manager”를 “Manager”로 수정하라는 피드백을 받으셨는데도 작동하지 않는다고 말씀하셨군요.

쿼리문을 확인해보니 대소문자가 올바르게 작성되어 있는 것으로 보입니다.

그런데, COUNT DISTINCT 함수를 사용할 때에는 DISTINCT와 COUNT 사이에 공백을 넣어야 합니다. 해당 부분을 수정하면 될 것 같아요.

그리고 inner join은 테이블들 간의 관계를 설정하여 두 테이블이 공통된 값을 가지고 있는 경우에만 결과를 반환하는 join 방식입니다.

쿼리문을 살펴보면, 각 테이블을 C, L, S, M, E로 alias를 부여하고 INNER JOIN을 통해 해당 테이블들을 연결하고 있습니다.

예를 들어, INNER JOIN Lead Manager L ON C.company_code = L.company_code 는 Company 테이블의 company_code와 Lead Manager 테이블의 company_code가 일치하는 경우에만 결과를 반환하게 됩니다.

다른 INNER JOIN 구문도 위와 비슷한 원리로 테이블 간의 관계를 설정하여 해당 테이블들을 연결하고 있습니다.

헷갈리신 부분이 있다면 추가로 설명해드릴게요. 감사합니다!