실습 내용 질문 드립니다~! CREATE INDEX idx_covering on orders(customer_id, order_date, total_amount); select * from orders where customer_id = 25675 order by order_date desc limit 10; 4개의 컬럼 중 PK를 제외한 3개만 있는데 어떻게 커버링 인덱스로 활용할 수 있는건가요?
안녕하세요. 마지막에 group by로 묶어서 입사동기로 나올 때, 뒤에 일자 + 00:00:00 까지 나오는 게 보기가 안 좋아서요. 년-월만 나오게 할 수 있을까요? 가령, select date_part ('year', hire_month )||'-'|| date_part ('month', hire_month ), counts from ( select date_trunc ('month', hiredate ) as hire_month, count (*) as counts from hr.emp_test group by date_trunc ('month', hiredate) ); 로 하면 나오긴 하는데 이건 서브쿼리를 이용한 방법이라 좀 더 간결하게 표현하고 싶습니다.
안녕하세요 보통 평균을 구한다고 하면 동일한 name을 가진 A를 2가 아닌 1로 생각해서 1+2+3+5 / 3 = 3.67 이렇게 계산을 하는데 AVG 함수는 좀 다르게 표현되는거 같아서요 제가 생각했을 때는 문제가 vistis의 평균을 구해라 라고 한다면 SELECT AVG(visits) FROM sample WHERE DISTINCT name ,,, 뭐 이런식으로 중복제거가 들어가야 할거 같은데 설명 부탁드립니다 ~!
https://leetcode.com/problems/game-play-analysis-iv/ 이 문제를 풀고 있는데, 제가 작성한 코드는 SELECT ROUND(COUNT(player_id) /(SELECT COUNT(DISTINCT player_id) FROM Activity),2) as fraction FROM ( SELECT player_id, LAG(player_id) OVER (ORDER BY player_id) AS prev_id, LAG(event_date) OVER (ORDER BY player_id) AS prev_date, event_date, RANK() OVER (PARTITION BY player_id ORDER bY event_date) AS rnk FROM Activity ) A WHERE rnk = 2 AND DATE_ADD(prev_date, INTERVAL 1 day) = event_date AND player_id = prev_id 입니다. 이 코드로 정답을 체크해 보았을 때 wrong answer라 뜨지만, A FROM절 안에서 event_date, rnk의 순서를 LAG 앞으로 바꾸어 주었을 땐 정답 처리가 되었습니다. 왜 그런걸까요?? 아래는 순서를 바꿨을 때 정답처리 되었던 코드 입니다. SELECT ROUND(COUNT(player_id) /(SELECT COUNT(DISTINCT player_id) FROM Activity),2) as fraction FROM ( SELECT player_id, event_date, RANK() OVER (PARTITION BY player_id ORDER bY event_date) AS rnk, LAG(player_id) OVER (ORDER BY player_id) AS prev_id, LAG(event_date) OVER (ORDER BY player_id) AS prev_date FROM Activity ) A WHERE rnk = 2 AND DATE_ADD(prev_date, INTERVAL 1 day) = event_date AND player_id = prev_id
쿼리상에서 실행되지 않게 설명 추가하는 방법이 어떻게 될까요? 이전에 단축키랑 함께 배웠는데 못찾겠네요 ㅠ - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 ! WHERE 해커링크풀이 1 에서 모음으로 시작하는 나라에 대한 답변을 아래와 같이 알려주셨는데 SELECT DISTINCT city FROM station WHERE city LIKE 'a%' OR city LIKE 'e%' OR city LIKE 'o%' OR city LIKE 'i%' OR city LIKE 'u%' 아래와 같이 입력하면 안될까요 ? SELECT DISTINCT city FROM station WHERE city IN ('a%', 'e%', 'o%', 'i%', 'u%' ) 안된다면 왜 안되는지도 알려주시면 감사하겠습니다.
만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. having total_score !=0 이라고 group by 결과값을 필터링해주셨는데 실행 순서상 서브쿼리 -> 메인쿼리(from/join -> (where) -> groupby -> having ->select -> orderby -> limit) 이지 않나요? 그런데 select 에 있는 total_score를 having에서 쓸 수 있는 이유가 궁금합니다.
안녕하세요. 섹션1의 6회차 실습 중에 에러가 발생하여 문의드립니다. 에러 메시지는 아래 첨부된 이미지로 확인해 주세요. 노션에 제공된 코드를 그대로 복사하여 붙여넣었고, root 패스워드를 제가 설정한 패스워드로 수정한 것말곤 없습니다. (*사용 중인 환경: MAC) 어떻게 해결할 수 있을까요? 도와주세요! ㅠ_ㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님. 질문이 좀 있습니다. a,b,c,d table 과 id 컬럼이 있다고 가정 1) 여기서 [1.1] 쿼리는 실행 계획으로 치면 a,b,c를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 결과 도출. 이렇게 이해하고 있습니다. 그런데, 여기서 궁금한것이 LEFT OUTER JOIN은 서술 왼쪽 테이블이 드라이빙 고정으로 알고 있습니다. 그래서, [1.2] 쿼리는 실행 계획으로 치면 a,b를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 데이터 셋을 새로만듬. 그리고 , c와 이너조인 진행 이렇게 이해하면 될까요? 2) 1.1과 1.2처럼 아우터조인의 서술 위치에 따라서 결과값에 대한 데이터가 달라질수 있나요? 결국 a.id와 조인하기 때문에 해당 기준으로 데이터를 뽑아서 어디에 서술하던지 데이터는 달라질수 없는거같은데 제가 이해한게 맞는지 질문드립니다. 3) 2번을 질문드린 이유중 하나인데요. 아우터 조인을 쓰면 테이블의 드라이빙 순서가 고정되버리니까 서술한 위치에 따라서 실행계획이 바뀔테고 그러면 데이터가 변경될수도 있는 사례가 있을까요? 실행계획은 아무리 바뀌어도 데이터의 영향을 주는건 없는걸로 알지만 , 자꾸 뭔가 헷갈려서 질문드립니다. 4) a.id = b.id on b.id =c.id on c.id =d.id 이런식으로 조건을 주면 이너 조인은 상관 없겠지만 아우터 조인을 진행할 때는 데이터가 달라질거 같은데 보통은 아우터 조인 쿼리를 작성할 때 조인 조건을 어떻게 줘야하나요? 제가 적은 예시처럼 쿼리를 짜나요?? 질문이 두서 없고 너무 많아서 죄송합니다.. 강사님 강의를 통해 확실하게 잡고 가지 않으면 추후에 또 다시 공부를 해야할 거 같아 질문드립니다. [1.1] select * from a INNER JOIN b ON a.id = b.id INNER JOIN c ON a.id = c.id LEFT OUTER JOIN d ON a.id = d.id; [1.2] select * from a INNER JOIN b ON a.id = b.id LEFT OUTER JOIN d ON a.id = d.id INNER JOIN c ON a.id = c.id;
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 제목 그대로 백엔드 개발자가 들어도 괜찮은 강의인지 궁금합니다. (이미 강의를 결제했지만요 ㅎㅎ..) 강의에서 전체적으로 다루는줄 알았는데 select에 집중한다길래.. 내가 생각한 강의가 아닌가.. 싶어서 이렇게 글 남깁니다.