묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨데이터 분석 SQL Fundamentals
analytic-sql과 상관 서브쿼리
안녕하세요 강의 열심히 듣고 있습니다. 감사드립니다.[서브쿼리 실습-02] 수업에 대해 질문이 있습니다. -- 상관 서브쿼리select * from hr.emp_dept_hist_01 a where todate = (select max(todate) from hr.emp_dept_hist_01 x where x.empno=a.empno);-- Analytic SQLselect * from ( select *, row_number() over (partition by empno order by todate desc) as rnumfrom hr.emp_dept_hist_01 )a where rnum = 1; 위 두 가지 방법의 성능 차이에 대해 궁금합니다. (고객 데이터 분석 업무를 수행하고 있는데, 데이터가 커서 성능이 항상 이슈더라구요)강의에서 말씀해주신대로, online 처리를 해야한다면 analytic-sql은 sorting을 해야하기 때문에 상관 서브쿼리가 더 성능이 좋을 것 같습니다.강의에서 분석을 할 때는(배치로 처리할 때) analytic sql이 더 성능이 좋다고 하셨는데 그 이유는 무엇인가요??
-
해결됨데이터 분석 SQL Fundamentals
데이터베이스 설계에 대해 질문 드리고싶습니다
강사님 안녕하십니까. 강사님 머신러닝, 딥러닝 강의도 전부 듣고 책까지 산 수강생으로서, 항상 좋은 강의 해주셔서 감사하다는 말씀 먼저 드립니다.이번 SQL 강의는 제가 최근 스프링 프레임 워크와 스프링 데이터 JPA 를 공부하는 과정에서 데이터 베이스에 관한 공부의 필요성을 느껴 수강하게 되었고 , 그 과정에서 강의에 사용되는 테이블에 대해 궁금증이 생겨 이렇게 질문을 작성하게 되었습니다.본 SQL 강의에서 사용되는 데이터베이스에서는 몇몇 테이블이 식별 관계로 연결되어 연관된 테이블들의 PK를 복합 식별자로 갖도록 설계되어 있던데 , 실제 업무에서도 테이블 설계 방식이 이와 같은지 궁금합니다.스프링 데이터 JPA 강의를 수강할 때, 해당 강의의 강사 분은 각 테이블을 비 식별 관계로 설계하여, 업무의 내용과 관계없는 독립적인 ID 칼럼을 생성하여 PK로 설정하는 것이 스프링 데이터 JPA 의 코드 복잡성을 줄이고 업무 관점에서도 테이블간의 의존성을 줄여 추후에 발생하는 문제를 어느 정도 예방할 수 있기 때문에 테이블을 비 식별 관계로 설계하는 것을 선호한다고 하였는데, 권철민 강사님은 테이블을 설계하실 때 식별 관계과 비 식별 관계를 어떠한 기준으로 선택하시는지 질문드리고싶습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
Top Earner MAX질문
SELECT * FROM ( SELECT name , MAX(months*salary) max_earnings FROM employee GROUP BY name ) total_earning ORDER BY max_earnings DESC제가 위와 같이 쿼리를 작성했었는데요, 예상과는 다르게 모든 사람들의 earnings가 보여지고 MAX earning 하나만 보여지지는 않더라고요. 그 이유가 name 으로 GROUP BY 했기 때문인가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
Top Earner 풀 때 질문
SELECT * FROM ( SELECT name , months*salary FROM employee ) total_earnings -- 여기까지는 잘 나오는데 ORDER BY months*salary DESC--여기서 갑자기 1054(42S22) 오류처음에 위와 같이 코드를 작성했는데 오류가 발생해서 다음과 같이 시도해봤는데요.시도 1)SELECT * FROM ( SELECT name , months*salary FROM employee ) total_earnings ORDER BY employee.months*employee.salary DESC각 months랑 salary가 어디 컬럼인지 명확한 것 같지 않아서 테이블을 employee로 지정하고 해줬는데 계속 오류가 뜨더라고요. 그래서 다음과 같이 다시 시도했는데 됐어요.시도 2) SELECT * FROM ( SELECT name , months*salary earnings FROM employee ) total_earnings ORDER BY total_earnings.earnings DESC 여기 과정에서 질문이 생겼는데요!!시도 1처럼 곱셈할 때 '테이블명.컬럼명' 하면 원래 적용이 안 되는 건가요?서브쿼리 테이블명 지정할 때 alias 사용은 못하나요? 시도해봤는데 자꾸 에러가 떠서요!
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
weather observation station 12, <>와 not like의 차이점
안녕하세요! weather observation station 12 문제 풀이 중, not like 와 <> 의 차이에 대해 궁금한 부분이 생겨 문의드립니다. 커뮤니티 게시판을 살펴보며 유사한 문의와 답변을 확인했는데요. (where 해커랭크 문제풀이2 > 커뮤니티 > 21.1.9 작성 게시글)답변 내용 중, <>를 사용한 예시는 'happy'를 걸러내는 건 맞지만, '%happy%'를 걸러내는 조건문은 아닌 것 같아서요. <> '%happy%' 로 작성하면 unhappy라는 텍스트에는 happy라는 단어가 들어가있으니 출력이 되지 않을 것 같은데요...만약 출력이 된다면1) <>는 like의 의미가 없는 ≠의 의미이며2) <> '%happy%'에서 %는 와일드카드가 아닌 텍스트로 인식한다 로 이해하면 될까요??[참고 - 아래 문의 중 답변내용] 조건이 데이터 not like '%happy%'일 경우 happy라는 글자가 어떤식으로라도 들어가 있을 경우 데이터가 출력되지 않습니다. 즉, 'unhappy'라는 텍스트 데이터는 '%happy%'의 패턴에 포함되므로 출력되지 않습니다.그러나 조건이 데이터 <> 'happy'일 경우 'unhappy'라는 텍스트는 'happy'라는 텍스트와 같은 것이 아니므로 출력이 가능합니다.문제 풀어보시면서 여러가지 경우의 수에 대하여 not like와 <>으로 실험을 해보시면 이해가 빠르실 것으로 생각됩니다.[참고2 - 제가 풀이한 방법] SELECT DISTINCT cityFROM station WHERE city <> "a%" and city <> "e%"and city <> "i%"and city <> "o%"and city <> "u%"and city <> "%a"and city <> "%e"and city <> "%i"and city <> "%o"and city <> "%u"
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
case avg 관련 쿼리 오류
SELECT AVG(CASEWHEN CategoryID = 1THEN PRICEELSE NULLEND) AS CATEGORY1_PRICE,AVG(CASEWHEN CategoryID = 2THEN PRICEELSE NULLEND) AS CATEGORY2_PRICE,AVG(CASEWHEN CategoryID = 3THEN PRICEELSE NULLEND) AS CATEGORY3_PRICE,FROM Products다음과 같이 작성하였는데 from synthe 이라는 문구와 함께 작동이 안되서 어떤게 잘못되었는지 여쭤보고자 합니다...! ㅜ추가로 맞게 썼다고 생각하는데 오류가 발생하면 어떤 것부터 확인해야할까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
INNER JOIN 결과
작성해주신 INNER JOIN 결과가 왜 아래와 같이 나오는지 잘 모르겠습니다.p1.Id p1.Email p2.Id p2.Email1 john@example.com 1 john@example.com1 john@example.com 3 john@example.com2 bob@example.com 2 bob@example.com3 john@example.com 1 john@example.com3 john@example.com 3 john@example.comemail을 기준으로 join한다고 했을때 id값은 어떻게 결정되나요? p1테이블에서 두번째 행에 왜 위와 같은 값이 들어가는지 잘 모르겠습니다.p1.Email = p2.Email이 같다는 조건도 이미 p2의 테이블이 형성되고 나서 위 조건을 적용하는 걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
where or 사용 시 in으로 전환 관련 문제
웨더 옵저베이션 문제에 대해 이렇게 답을 구했는데이전 강의에서 말씀해주신대로 where city like 에 in을 삽입해서 간단히 쓸 수는 없는지 궁금합니다.여러군데에 in을 조합하여 쿼리를 짜봤는데 나오지가 않아서요 ㅜSELECT DISTINCT CITY FROM STATION WHERE CITY LIKE 'i%' OR CITY LIKE 'e%' OR CITY LIKE 'a%' OR CITY LIKE 'o%' OR CITY LIKE 'u%'
-
미해결생애 첫 SQL With 제코베
노션
노션 링크는 어디서 찾을 수 있을까요? 처음부터 수강했는데 못찾겠어요ㅜㅜ
-
미해결SQL 개발자 (SQLD) 자격증 따기 Part.2
CASCADE CONTRAINT가 아니고 CASCADE CONTRAINTS입니다
구문 오류가 떴던 이유는 CASCADE CONTRAINT가 아니고 CASCADE CONTRAINTS이기 때문입니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
수료증
수료증 주나요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
Placements에서 LEFT JOIN 뒤에 ON 조건
SELECT * FROM students s LEFT JOIN Friends f ON s.id = f.id위에 코드랑SELECT * FROM students s LEFT JOIN Friends f ON s.id = f.friend_id아래 코드 두 개로 해봤는데요. 아직도 JOIN 뒤에 ON 조건을 쓰는 게 헷갈려요.첫 번째 코드로 했을 때의 친구id랑 두 번째 코드로 했을 때의 친구id가 완전 달라지더라고요. 왜 그런건가요??
-
해결됨실무에 바로 쓰자! 이커머스 데이터로 배우는 실전 SQL 분석
쿼리 질문
데이터 join 시점부터 두 번 째줄 쿼리 문인 WHERE l = l 은 왜 넣는건가요? 무슨 의미인가요?
-
미해결SQL 개발자 (SQLD) 자격증 따기 Part.2
슨생님 ....
수업 초반에서는 RollBack이 DDL인 Alter에는 적용인 안되나보다 하다가 뒤에서는 롤백을 해서 Alter 한게 안 먹었다보다 하시고;;;;
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
리트코드 사이트
리트코드 사이트 problem에 category항목이 노출되지 않는데 현재는 변경되었을까요?
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
기한이
안녕하세요 sql 작성법 교육을 받고 있는 수강자입니다. 교육수강이 8월18일까지 인걸로 알고 있습니다.아직 부족한 내용이 있어 한달 연장 신청을 부탁드립니다. 연장이 되면, 남은기한까지 교육수강을 마무리하도록 하겠습니다. 감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
커리어 관련질문
기획직무 SQL 활용능력을 보여주기 위해선생님 강의 중,고급과정을 듣고 SQLD 시험도 응시하려고 하는데해당 강의로도 준비가능할까요?아니면 별도의 SQLD 교재 기본서를 구매하여 같이 공부해야할까요?강의 쏙쏙 들어와서 잘듣고 있습니다. 감사합니다.
-
미해결SQL 개발자 (SQLD) 자격증 따기 Part.2
Truncate는 DDL아닌가요?
Truncate는 권한과 관련이 없는데 DCL 인 것이 이해가 가지 않아서 찾아보니 모든 문서에서 Truncate는 DDL이라고 나오네요. 이게 실수라면 너무 치명적 아닌가요;;;정말 중요한거라고 하시면서.... 갑자기 수업에 대한 신뢰가 와장창 ㅠㅜ
-
해결됨SQL 코딩테스트를 위한 첫 걸음
깃헙 데스크탑, MYSQL 워크벤치 연동
설명이 너무 생략되어 있어서 이해가 안됩니다.깃헙을 처음 써보는데중간에 생략한 부분이 많네요.윈도우 환경에서 다시 상세히 설명 부탁드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
CLI로 ga_export.sql 쉽게 불러오기
안녕하세요 강사님, 오늘부터 새로 강의를 듣게 되었는데 완강 목표로 열심히 듣겠습니다 ㅎㅎ강의 초반 환경설정에서 ga_export.sql이 large text여서 Dbeaver에서 스크립트 실행할 때 java heap space 부족 에러가 발생하더라고요.이 때 터미널로 쉽게 불러올 수 있는 방법을 찾았고, 다른 수강생분들에게도 도움이 될 것 같아 공유드립니다.아래 스샷처럼 터미널에서 sudo -iu postgres psql 입력 후 \i [ga_export.sql이 위치한 경로] 를 입력하면 쉽게 ga 데이터를 불러올 수 있습니다.