안녕하세요! 데이터리안님 저는 DA로 취준하고있는 학생입니다. 이제 슬슬 서류는 합격하기 시작했는데, 코테에서 떨어집니다. (일주일전 1번 떨어짐) 앞으로도 계속 코테가 있을 예정인데요. 조만간 또 SQL코테를 앞두고 있어서, 빠르게 SQL 실력을 올리고 싶습니다. 솔직히, SQL 문제 혼자 풀기 시작한 것은 벌써 몇달 됐는데, 실력이 잘 안 늘어서요.. 별 3개 문제 정도는 풀 실력이 된거같은데, With 문 쓰고, 서브쿼리 쓰는건 아~~~ 이걸 내가 할 수 있을까? 싶은 생각이 들어요. 그러던 중, 어제 변성윤(카일)님께서 링크드인에서 이 강의 링크를 추천해주셔서, 오늘부터 듣기 시작했는데. 되게 좋은 것 같아요! 이전에는, " 어쨌든 풀어서 답만 맟주면 된다는 식의 풀이 " 가 구글링하면 많은데, 그게 아니라 제대로 배워야겠다 는 생각이 들었습니다. 그래서, 어차피 sovleSQL 문제로 계속 공부해왔으니까 강의들으면서, 계속 풀이방식 적절했는지 피드백들으면서 빨리 익힐 수 있을 것 같은데, 지금 신청해도 들을 수가 없네요. (입문, 실전, 마스터) 다 빠르게 듣고싶은데. SQL 강의를 5월 5일에 개강한다고 돼있어서, 혹시 좀 더 빨리 수강할 수 있는 방법은 없는지 여쭤봅니다.
SELECT c.name FROM companies c JOIN games g ON c.company_id = g.publisher_id GROUP BY c.company_id, c.name HAVING COUNT(g.game_id) >= 10; 이렇게 풀어도 되는데, 뭐가 더 좋은 풀이인지 궁금합니다~~ 강의에서 설명하신 것처럼, 먼저 뭐부터 뽑을지 정하고, 거기에 필요한 걸(JOIN같은것) 추가하듯이 푸는게 좋은건가요?
안녕하세요. 섹션5의 두번째 강의인 Group by 실습-01 에서 다룬 예제에 대해 질문드립니다. -- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여 select b.empno, max(b.ename) as ename , avg(c.sal) as avg_sal from hr.dept a join hr.emp b on a.deptno = b.deptno join hr.emp_salary_hist c on b.empno = c.empno where a.dname in('SALES', 'RESEARCH') group by b.empno order by 1; 이 쿼리에서 b.ename을 집계함수에 넣지 않고 아래와 같이 group by에 넣어서 출력하는 방식으로 해봤는데 결과가 동일하게 나옵니다. select b.empno, b.ename, avg(c.sal) as avg_sal from hr.dept a join hr.emp b on a.deptno = b.deptno join hr.emp_salary_hist c on b.empno = c.empno where a.dname in('SALES', 'RESEARCH') group by b.empno, b.ename order by 1; 두 쿼리 중 실무적으로 더 권장하는 방법이 있으신가요? 성능 혹은 기능 등의 차이가 있는지도 궁금합니다.
안녕하세요. 섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 중 예제에서 질문이 있습니다. -- 고객명 Antonio Moreno이 1997년에 주문한 주문 상품 정보를 고객 주소, 주문 아이디, 주문일자, 배송일자, 배송 주소 및 -- 주문 상품 아이디, 주문 상품명, 주문 상품별 금액, 주문 상품이 속한 카테고리명, supplier명을 구할 것. select a.contact _name, a.address, b.order_id, b.order_date, b.shipped_date, b.ship_address, c.product_id , d.product_name, c.amount, e.category_name, f.contact _name as supplier_name from nw.customers a join nw.orders b on a.customer_id = b.customer_id join nw.order_items c on b.order_id = c.order_id join nw.products d on c.product_id = d.product_id join nw.categories e on d.category_id = e.category_id join nw.suppliers f on d.supplier_id = f.supplier_id where a.contact _name = 'Antonio Moreno' and b.order_date between to_date('19970101', 'yyyymmdd') and to_date('19971231', 'yyyymmdd') 이 예제에서 볼드친 product_id를 order_items 테이블이 아닌 products 테이블의 product_id로 끌어와도 괜찮은지 궁금합니다. 결과는 동일하게 나오는데 혹시나 차이가 있는지 궁금합니다.
안녕하세요. 섹션2 조인 실습 01 강의에서 질문이 있습니다. 조인 실습1의 예제들에서 강사님께서는 join을 사용하시는데 left join을 사용해도 괜찮은지 궁금합니다. 보통 조인 시 일반적으로 left join을 사용한다고 들어서요. 예를 들어 emp 테이블과 dept 테이블을 inner join할 경우 만약의 경우 emp 테이블에 존재하는 직원이 dept 테이블에서 누락되었다면 최종 join 테이블에도 그 직원이 누락될 수 있기 때문에 left join을 쓰는게 안전하지 않나 하는 생각이 들었습니다. 조인 실습1 예제의 4번째 예제에서 날짜 필터링 조건에서 to_date 함수를 쓰지 않고 fromdate >= '1983-01-01' 그냥 이처럼 써도 되는지 궁금합니다. 결과는 동일하게 나오지만 성능적 차이가 있거나 to_date 함수를 사용하는 것이 실무에서 많이 쓰는 방식인건지 궁금합니다. 조인실습1 문제4 - 저의 풀이 부서명 SALES와 RESEARCH의 소속 직원들의 부서명, 직원번호, 직원명, JOB 그리고 과거 급여 정보중 1983년 이전 데이터는 무시하고 데이터를 추출하시오 SELECT d.dname, e.empno, e.ename, e.job, esh.fromdate, esh.todate, esh.sal FROM dept d JOIN emp e ON d.deptno = e.deptno JOIN emp_salary_hist esh ON e.empno = esh.empno WHERE d.dname IN ('SALES', 'RESEARCH') AND esh.fromdate >= '1983-01-01' ORDER BY d.dname, e.empno, e.ename, esh.fromdate;
lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다. 라는 내용이 이해가 안갑니다..!! 여러 윈도우 함수 이용시에 공통으로 윈도우 절이 사용가능해 보이는데, SELECT id, employee, sale_amount, COUNT(*) OVER w AS total_sales, SUM(sale_amount) OVER w AS total_amount, LEAD(sale_amount) OVER w AS next_sale, LAG(sale_amount) OVER w AS prev_sale FROM sales WINDOW w AS (PARTITION BY employee ORDER BY sale_date); 이런 내용 말고 다른 내용일까요 ?
다음과 같은 양식으로 남겨주세요. 질문을 한 배경 : 질문내용 : postgres select 함수만들기의 51초에 await getNotes() 실행하면 Restarting 'database.js' /project/workspace/database.js:39 await getNotes(); ^^^^^ SyntaxError: await is only valid in async functions and the top level bodies of modules 이런에러가 뜨고 다른곳에서도 펑션밖에서 바로 await를 사용하면 해당에러가 뜨는데 왜 선생님은 에러가 안뜨고 제쪽에서만 뜨는건가요??
select page_path , count (*) as page_cnt , count ( distinct sess . sess_id ) as unique_page_cnt from ga . ga _sess_hits his join ga . ga _sess sess on his . sess_id = sess . sess_id where visit_stime >= ( '2016-11-01' :: date - interval '30 days' ) and visit_stime < '2016-11-01' and hit_type = 'PAGE' group by page_path order by 2 desc ; 저는 위와 같이 쿼리를 작성했습니다만, 교육 자료에서 temp_01, temp_02로 각각 나눠서 page_cnt와 unique_page_cnt를 구하는 것에 어떠한 장점이 있어서 교안의 쿼리 대로 작성하는지 궁금합니다. 제가 단순히 생각하기에는 비효율적으로 보여서요! 제 쿼리가 비효율적일 수도 있는데, 장단점을 들어보고 싶습니다.
안녕하세요. 항상 도움 받고있습니다 마지막 강의 소스코드를 실행 할 때, 아래처럼 에러가 나는데 어떤 방향으로 해결하면 좋을까요? 추측하기로는 강의 초반부에 DB가져다가 쓸 때, Nuget콘솔에다가 이름이랑 패스워드등을 넣어서 코드를 생성하셨었는데요 . 그걸 안하고 소스코드를 써서 그런것아닐까싶습니다. 에러 내용: Npgsql.PostgresException: '28P01: ����� "postgres"�� password ������ �����߽��ϴ�'
안녕하세요 해당 데이터셋에는 퍼널의 순서가 있다보니 각단계별 전환율을 구할 수 있었는데요, 다른 데이터의 경우 퍼널의 순서가 없다면 어떻게 분석을 해야할까요? 예를들어 "로그인 > 장바구니 >구매" 순서가 아닌 "로그인 > 구매" 이렇게 장바구니와 구매를 선택할수 있는 허브역할을 할 수도 있다고 생각되는데요. 이부분에서 개인적으로 공부하는데 막히더군요