강의 영상 하단에 추가해주신 텍스트에 관하여 질문드립니다. [WHERE p1.Id > p2.Id ] 로 필터링 하여 얻은 결과에 대해 DELETE p2였다면 p2테이블에서의 1 john@~ 레코드만 사라지고 p1(원본)에는 아무런 삭제가 이루어지지 않아야하는데 실습환경에서는 | id | email | | -- | ---------------- | | 2 | bob@example.com | | 3 | john@example.com | 로 나왔습니다. 어떤 이유인지 궁금합니다.
완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 15 4명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다. (15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?
강의 너무 재밌게 잘듣고 있어서 감사합니다. 두 가지 접근법으로 설명해주셨는데 아래 나열된 4개의 표를 보고 LEFT JOIN으로 처음부터 접근하겠다고 생각을 했다면 맞는 방식인가요? 아니면 선생님처럼 마지막표로 했을 때와 수치가 일치하지 않고 확인하고 접근하는게 맞는 방식일까요? 2. 원래는 항상 AS 알리아스를 사용하셨는데 갑자기 FROM COMPANY C Lead_Manager LM 이런식으로 AS 생략 후 Capital 사용을 해주셨는데 설명없이 진행된거 같은데 AS를 생략하고 스페이스 후 대문자로 쓰면 AS와 동일하게 입력되는게 맞나요? GROUP BY가 와야되는 이유 해당 문제의 쿼리문은 작성하였는데 그룹바이를 빠뜨렸습니다. 어떤 이유에서 그룹바이가 와야하는지 이유가 잘 이해되지 않아서 질문드렸습니다. 아래와 같이 쿼리문을 작성하였는데 실행되지 않아서 문의드립니다. ㅜ SELECT company.company _code , company.founder , COUNT(DISTINCT Lead_Manger.lead_manager_code) , COUNT(DISTINCT Senior_Manager.senior_manager_code) , COUNT(DISTINCT Manager.manager_code) , COUNT(DISTINCT Employee.employee_code) FROM Company LEFT JOIN Lead_Manager ON Company.company _code = Lead_Manager.company_code LEFT JOIN Senior_Manager ON Lead_Manager.company_code = Senior_Manager.company_code LEFT JOIN Manager ON Senior_Manager.company_code = Manager.company _code LEFT JOIN Employee ON Manager.company _code = Employee.company _code Group BY company.company _code, company.founder ORDER BY company.company _code 긴 글 읽어주셔서 감사합니다!
DELETE FROM Person WHERE id IN( SELECT p2.id FROM Person AS p1 INNER JOIN Person AS p2 ON p1.email = p2.email WHERE p1.id < p2.id ); 저스스로 작성해본 코드입니다만 위와 같이 작성 후 제출하면 "You can't specify target table 'p' for update in FROM clause" 라고 뜨더라구요. 저번 선생님께서 알려주신 NOT IN 을 사용한 코드와 거의 비슷한 방식인거 같은데 왜 위와같은 오류가 뜨는지 알 수 있을까요?
SELECT Employee.Name AS Employee FROM Employee INNER JOIN Employee AS Manager On Employee.ManagerID = Manager.ID WHERE Employee.Salary > Manager.Salary 코드에서 저는 = Magnager.ManagerID라고 생각을 했는데 왜 저렇게 구문이 되는지 정확하게는 이해가 안가서 문의드려요. SELF-JOIN 시 교차점으로 해서 되는거 같은데 정확히는 이해가 안되네요 ㅜ
안녕하세요. 프로그램 설치시 하기 오류가 뜨는데요.. There has been an error : The enviromental variable COMSPEC does not seem to print to the cmd.exe or there is a trailling semicolon present. 인터넷 참조해서 방화벽도 없애보고 했는데 설치가 안되어서 글을 남깁니다. 배워볼려고 하는데 설치부터 안되니 답답합니다.
SELECT id , SUM(CASE WHEN month = 'JAN' THEN revenue ELSE NULL END AS Jan_Revenue) , SUM(CASE WHEN month = 'FEB' THEN revenue ELSE NULL END AS Feb_Revenue) , SUM(CASE WHEN month = 'MAR' THEN revenue ELSE NULL END AS Mar_Revenue) , SUM(CASE WHEN month = 'APR' THEN revenue ELSE NULL END AS Apr_Revenue) , SUM(CASE WHEN month = 'MAY' THEN revenue ELSE NULL END AS May_Revenue) , SUM(CASE WHEN month = 'JUN' THEN revenue ELSE NULL END AS Jun_Revenue) , SUM(CASE WHEN month = 'JUL' THEN revenue ELSE NULL END AS Jul_Revenue) , SUM(CASE WHEN month = 'AUG' THEN revenue ELSE NULL END AS Aug_Revenue) , SUM(CASE WHEN month = 'SEP' THEN revenue ELSE NULL END AS Sep_Revenue) , SUM(CASE WHEN month = 'OCT' THEN revenue ELSE NULL END AS Oct_Revenue) , SUM(CASE WHEN month = 'NOV' THEN revenue ELSE NULL END AS Nov_Revenue) , SUM(CASE WHEN month = 'DEC' THEN revenue ELSE NULL END AS Dec_Revenue) FROM department GROUP BY id 해당 코드에 대해서 이해가 안가는 부분이 있어서 문의 드립니다. SELECT ID SUM(CASE WHEN MONTH = 'JAN' THEN REVENUE WHEN MONTH = 'FEB' THEN REVENUE WHEN MONTH = 'MAR' THEN REVENUE ELSE NULL END 이런 식으로 생각을 했는데요. AS가 REVENUE 뒤에 각각 들어갈 수 있는지와 이런 식으로 할 경우 어떤 부분에서 오류가 있는지 여쭤봅니다!
문제에는 left, right, not in을 사용해주셨는데요, 처음에 제가 코드를 짰을 때는 Not LIKE로 사용했거든요. 틀렸다고 나오는데 잘 모르겠어서 질문드립니다. 자세하게 알려주시면 도움이 많이 될 것 같습니다. SELECT DISTINCT city FROM station WHERE lower(city) NOT LIKE '%[aeiou]' OR lower(city) NOT LIKE '[aeiou]%'
안녕하세요 제로초님! 강의 재미있게 잘 듣고있습니다 :D offset 방식에 대해 질문이 있는데요, 게시물들이 많은 게시판의 경우 offset 방식처럼 보이는 페이지네이션이 적용되어있는 것을 많이 보았는데 offset 방식을 사용할경우 조회때문에 데이터가 많을 수록 성능 이슈가 발생한다고 말씀하셔서요, 이 방식과 동일하게 구현하면서 (게시물 신규등록 및 삭제시 보여지는 게시물 변동) 성능 이슈를 해결할 수 있는 방법도 존재하는지 궁금합니다!
안녕하세요 강의 열심히 듣고 있습니다. 감사드립니다. [서브쿼리 실습-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 SQL select * from ( select *, row_number () over ( partition by empno order by todate desc ) as rnum from hr.emp_dept_hist_01 )a where rnum = 1; 위 두 가지 방법의 성능 차이에 대해 궁금합니다. (고객 데이터 분석 업무를 수행하고 있는데, 데이터가 커서 성능이 항상 이슈더라구요) 강의에서 말씀해주신대로, online 처리를 해야한다면 analytic-sql은 sorting을 해야하기 때문에 상관 서브쿼리가 더 성능이 좋을 것 같습니다. 강의에서 분석을 할 때는(배치로 처리할 때) analytic sql이 더 성능이 좋다고 하셨는데 그 이유는 무엇인가요??
강사님 안녕하십니까. 강사님 머신러닝, 딥러닝 강의도 전부 듣고 책까지 산 수강생으로서, 항상 좋은 강의 해주셔서 감사하다는 말씀 먼저 드립니다. 이번 SQL 강의는 제가 최근 스프링 프레임 워크와 스프링 데이터 JPA 를 공부하는 과정에서 데이터 베이스에 관한 공부의 필요성을 느껴 수강하게 되었고 , 그 과정에서 강의에 사용되는 테이블에 대해 궁금증이 생겨 이렇게 질문을 작성하게 되었습니다. 본 SQL 강의에서 사용되는 데이터베이스에서는 몇몇 테이블이 식별 관계로 연결되어 연관된 테이블들의 PK를 복합 식별자로 갖도록 설계되어 있던데 , 실제 업무에서도 테이블 설계 방식이 이와 같은지 궁금합니다. 스프링 데이터 JPA 강의를 수강할 때, 해당 강의의 강사 분은 각 테이블을 비 식별 관계로 설계하여, 업무의 내용과 관계없는 독립적인 ID 칼럼을 생성하여 PK로 설정하는 것이 스프링 데이터 JPA 의 코드 복잡성을 줄이고 업무 관점에서도 테이블간의 의존성을 줄여 추후에 발생하는 문제를 어느 정도 예방할 수 있기 때문에 테이블을 비 식별 관계로 설계하는 것을 선호한다고 하였는데, 권철민 강사님은 테이블을 설계하실 때 식별 관계과 비 식별 관계를 어떠한 기준으로 선택하시는지 질문드리고싶습니다.
숫자야구 문제 코드 부분에서 약간 오류가 있는 것 같아서 질문드립니다. number, strike, ball에 각각 힌트를 분배할 때 hint[0]~[2]가 아닌 arr[0]~[2]를 담으면서, arr[1]이 strike, arr[2]가 ball이 맞는 것 같은데 영상에 나오는 코드를 다음과 같이 고치면 될까요? for arr in hint: number = arr[0] strike = arr[1] ball = arr[2]
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 했기 때문인가요?