공부하고 전파하는 것을 좋아합니다. 빅데이터와 인공지능에 오랜 경력이 있습니다.
20년 현업 데이터분석가 경력, 5년 데이터 분석 강의!
빅데이터 및 인공지능 분야 기업 및 공공기관 자문 및 출강
빅데이터 분석기사 한권완성 필기, 실기 저자
인공지능 분야 스타트업 대표
강의
수강평
- [2025] 비전공자도 한 번에 합격하는 SQLD 올인원
- [2025] 비전공자도 한 번에 합격하는 SQLD 올인원
- [2025] 비전공자도 한 번에 합격하는 SQLD 올인원
- [2025] 비전공자도 한 번에 합격하는 SQLD 올인원
게시글
질문&답변
Part 2 > Chapter 3 단원 정리 문제
안녕하세요. Part2 Chapter 3의 문제중에, 2번 같은 경우는 충분히 이견을 제시할 수 있을 것 같네요. 좀 애매한 면이 있어서요. 실제 시험에서도 이런 경우가 발생하는 데요. 이의를 제기할 경우 모두 정답으로 처리하는 경우가 있습니다. 참고하시구요. 문제는 좀더 명확히 변경을 해두었습니다. 4, 5번은 실수가 있었습니다. 이것 또한 수정하여 반영해두었습니다. 감사드립니다.
- 0
- 2
- 22
질문&답변
챕터1. SQL 기본 단원정리문제 53번
안녕하세요. 쿠라와님. 교안 내용을 알려주셔서 감사합니다. 아래 링크에 이메일을 하나 남겨주세요. 작은 선물을 보내드리겠습니다. https://forms.gle/rXRi6TpFTUxd7sW46감사합니다.
- 0
- 3
- 16
질문&답변
챕터1. SQL 기본 단원정리문제 53번
안녕하세요. 데이터코드랩입니다. 말씀하신 내용이 맞습니다. 해당 문제는 이미 정정해서 교안을 갱신해 둔 상태에요. 아마도 다운로드 받으신 파일이 수정 전의 것 같습니다. 새로 다운 받으시면 정정된 것을 사용하실 수 있습니다. 시험 합격 응원할게요 감사합니다.
- 0
- 3
- 16
질문&답변
챕터1. SQL 기본 단원정리문제 23번, 50번
안녕하세요. 데이터코드랩입니다. 네 말씀하신 내용이 맞습니다. 오류가 있었어요. 그런데, 이미 수정해서 올려 놓았던 내용인데요. 아마도 교안이 수정하기 전 파일로 보입니다. 새로 받으시면 정정 된 내용을 보실 수 있습니다. 시험이 얼마 안 남았네요 응원하겠습니다 감사합니다.
- 0
- 2
- 17
질문&답변
챕터1. SQL 기본 단원정리문제 23번
안녕하세요. 데이터코드랩입니다. 네 말씀하신 내용이 맞습니다. 해당 문제는 얼마전에 정정해서 다시 올려두었는 데요. 아마도 다운로드 받으신 교안이 과거 버전인 듯 합니다. 다시 다운로드 받으시면 정정된 교안을 사용하실 수 있습니다. 감사합니다.
- 0
- 2
- 18
질문&답변
문제에 문제가 있는 것 같습니다.
안녕하세요. Jeongin님. Null 값은 가장 큰 값으로 인식됩니다. 그래서, 말씀하신 것처럼 ASC 로 정렬하게 되면 가장 뒤에 나오는 것이 맞습니다. 정답이 잘 못 표기가 되어 있었습니다. 실수한 내용은 바로 잡아서 반영해 두었습니다. 바로 잡아주신 것이 많네요. 감사한 마음에 선물을 하나 보내드리려고 합니다. 아래 링크에 이메일 주소만 하나 남겨주세요. 감사합니다. https://forms.gle/rXRi6TpFTUxd7sW46그리고, 아래의 쿼리 참고하십시오. DROPTABLEEMPLOYEES; -- 1. EMPLOYEES 테이블 생성CREATETABLEEMPLOYEES (IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50),DEPT_IDNUMBER); -- 2. SALARIES 테이블 생성CREATETABLESALARIES (EMP_IDNUMBERPRIMARYKEY,SALARYNUMBER); -- 3. EMPLOYEES 테이블에 데이터 삽입INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID) VALUES (1, 'Alice', 101);INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID) VALUES (2, 'Bob', 102);INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID) VALUES (3, 'Carol', 103); -- 4. SALARIES 테이블에 데이터 삽입INSERTINTOSALARIES (EMP_ID, SALARY) VALUES (1, 6000);INSERTINTOSALARIES (EMP_ID, SALARY) VALUES (2, 4500);INSERTINTOSALARIES (EMP_ID, SALARY) VALUES (3, NULL); -- 5. 데이터 삽입 확인SELECT * FROMEMPLOYEES;SELECT * FROMSALARIES; -- 6. LEFT JOIN 실행 (문제에 제시된 쿼리)SELECTE.NAME, S.SALARYFROMEMPLOYEESELEFTJOINSALARIESSONE.ID = S.EMP_IDORDERBYS.SALARYASC;
- 0
- 2
- 23
질문&답변
여기도 문제가 있는거 같습니다.
안녕하세요. Jeongin님. 말씀하신 내용이 맞습니다. Order by 의 내용을 잘 못 기입되었습니다. 잘못된 부분은 수정하여 업데이트 해 두었습니다. 참고하시라고 아래 쿼리 넣어두었습니다. 감사합니다. -- 1. EMPLOYEES 테이블 생성CREATETABLEEMPLOYEES (IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50),DEPT_IDNUMBER,SALARYNUMBER); -- 2. DEPARTMENTS 테이블 생성CREATETABLEDEPARTMENTS (DEPT_IDNUMBERPRIMARYKEY,DEPT_NAMEVARCHAR2(50)); -- 3. EMPLOYEES 테이블에 데이터 삽입INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID, SALARY) VALUES (1, 'Alice', 101, 3000);INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID, SALARY) VALUES (2, 'Bob', NULL, 2500);INSERTINTOEMPLOYEES (ID, NAME, DEPT_ID, SALARY) VALUES (3, 'Carol', 103, 4000); -- 4. DEPARTMENTS 테이블에 데이터 삽입INSERTINTODEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (101, 'HR');INSERTINTODEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (103, 'Finance');-- 추가적인 부서 데이터 (조인되지 않는 경우를 확인하기 위해)-- INSERT INTO DEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (102, 'Marketing'); -- 5. 데이터 삽입 확인SELECT * FROMEMPLOYEES;SELECT * FROMDEPARTMENTS; -- 6. FULL OUTER JOIN 실행 (문제에 제시된 쿼리)SELECTE.NAME, D.DEPT_NAMEFROMEMPLOYEESEFULLOUTERJOINDEPARTMENTSDONE.DEPT_ID = D.DEPT_IDORDERBYD.DEPT_NAME; -- 7. (선택 사항) 실습 후 테이블 삭제-- DROP TABLE EMPLOYEES;-- DROP TABLE DEPARTMENTS;
- 0
- 2
- 31
질문&답변
문제가 잘못된 것 같습니다.
안녕하세요. Jeongin님. 데이터코드랩입니다. 문제에 오기가 있었습니다. Monitor 의 값이 100으로 표시가 되어야 하는데, 실수를 했네요. 말씀하신 데로, Monitor의 값이 150 인 경우 정답은 Mouse, Monitor가 되어야 합니다. 잘 못된 부분은 보완하여 업데이트 해두었습니다. 알려주셔서 감사드리구요. 시험 잘 보시길 응원할게요. 감사합니다. :)
- 0
- 2
- 26
질문&답변
64번 설명에서
안녕하세요. 질문을 잘 못 이해했네요.64번 문제 제가 확인을 해봤어요. 말씀하신데로, 제가 설명할 때 실수한 게 있었네요.위 쪽 쿼리는 순방향이 맞고, 아래쪽 쿼리는 역방향이 맞습니다. (강의 자료는 수정해두었습니다)둘다 역방향으로 보인다고 말씀 하신 것은, 제가 답변 단 아래의 설명을 참고해주세요. 감사드립니다.
- 1
- 3
- 35
질문&답변
64번 설명에서
안녕하세요. 데이터코드랩입니다. 질문자님께서 둘 다 역방향으로 보인다고 생각하시는 것은 아마도 PRIOR가 붙은 컬럼이 마치 "시작점"이 되는 것처럼 느껴지기 때문일 수 있습니다. 하지만 PRIOR는 단순한 시작점을 의미하기보다는, "연결할 때 기준이 되는 이전 행의 값"을 지칭한다고 이해하는 것이 정확합니다. CONNECT BY PRIOR 부모 = 자식 (순방향: 부모 → 자식)이 구문은 PRIOR가 붙은 부모 컬럼의 값이 현재 로우의 자식 컬럼의 값과 같을 때 연결하라는 의미입니다.즉, "이전 로우의 부모 값"이 "현재 로우의 자식 값"과 같다는 조건으로 연결되므로, 계층을 따라 내려가는 부모에서 자식으로의 흐름이 만들어집니다.예를 들어, 직원의 매니저(부모)가 누구인지 찾고, 그 매니저의 부하 직원(자식)을 찾는 식으로 하위 계층을 탐색하는 형태입니다.CONNECT BY 자식 = PRIOR 부모 (역방향: 자식 → 부모)이 구문은 "현재 로우의 자식 컬럼의 값이 이전 로우(부모)의 부모 컬럼의 값과 같을 때 연결"하라는 의미입니다.즉, "현재 로우의 자식 값"이 "이전 로우(부모)의 부모 값"과 같다는 조건으로 연결되므로, 계층을 거슬러 올라가는 자식에서 부모로의 흐름이 만들어집니다.예를 들어, 특정 직원의 상위 매니저(부모)가 누구인지, 그 매니저의 상위 매니저는 누구인지 계속해서 상위 계층을 탐색하는 형태입니다. 다시 한 번 설명하자면, CONNECT BY 에서 Prior 가 붙은 것은 이전의 의미입니다. 이전 로우의 부모, 이전 로우의 자식으로 생각하시면 이해하기가 더 쉬울 거예요. 시험이 얼마 안 남았네요. 꼭 합격 하시길 빌게요. 감사합니다. :)
- 1
- 3
- 35