묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
4번 BST 문제 틀리는 이유
4번 bst 문제와 관련해서 아래와 같이 쿼리 했는데 틀리네요 ㅠㅠ이유를 모르겠습니다SELECT DISTINCT BST.N, CASE WHEN BST.P IS NULL THEN 'Root' WHEN B2.N IS NULL THEN 'Leaf' ELSE 'Inner' END FROM BST LEFT JOIN BST B2 ON BST.N = B2.PORDER BY BST.N
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
weather observation 6 문제 질문입니다..!
WHERE city LIKE 'a%' OR 'e%' OR 'i%' OR 'o%' OR 'u%'로 작성하는 것은 잘못된 작성법인가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
해커랭크 Top Earners 질문!
안녕하세요! 해커랭크 Top Earners 문제에 관해 질문드리겠습니다. where 절에 서브쿼리를 사용할 때,select salary*months as earnings, count(*)from employeewhere salary*months = (select max(salary*months) from employee) 위의 코드를 작성했을때 group by 없이는 집계함수를 사용할 수 없다는 오류가 뜨는데, select count(*)from employeewhere salary*months = (select max(salary*months) from employee) select 에 count만 출력했을 때는 문제 없이 코드가 실행됩니다!count 단독으로 출력할 때는 전체 갯수만 파악하지만 salary*months 까지 같이 출력할 때는 해당 salary*months에 맞게 count를 해야해서 집계함수를 사용해야 하는 걸까요? 어짜피 max값만 가져와서 출력하는데도 group by를 꼭 사용해야 하는걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
Triangle 질문드려요
SELECT CASEWHEN A = B AND B = C THEN 'Equilateral'WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle'WHEN A = B OR B = C OR A = C THEN 'Isosceles'ELSE 'Scalene'ENDFROM TrianglesCASE문이 저렇게 Answer에 같이 떠서 안되는거같은데 어떻게 해야할까요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?
Select Distinct s.hackers, h.name, s.finalFrom (Select hackers, sum(maxscore) over (partition by hackers) as finalFrom( Select Distinct hacker_id as hackers, challenge_id, max(score) over (partition by hacker_id, challenge_id) as maxscoreFrom Submissions ) sub) sInner join Hackers h on h.hacker_id = s.hackersWhere s.final > 0Order by s.final desc
-
미해결데이터 분석 SQL Fundamentals
join 관련
안녕하세요!강의를 듣다가 궁금한것이 생겨서 문의 드립니다.-- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여select b.empno, max(b.ename) as ename, avg(c.sal) as avg_sal --, count(*) as cntfrom hr.dept a join hr.emp b on a.deptno = b.deptno join hr.emp_salary_hist c on b.empno = c.empnowhere a.dname in('SALES', 'RESEARCH')group by b.empnoorder by 1; 여기서 왜 max(b.ename) 이라고 해야하는지 잘 이해가 안가서 문의 드립니다..!감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
풀이대로 해서 Run 할 때는 괜찮은데 Submit 하면 오류가 나옵니다.
똑같이 작성했는데도 위와 같이 나오네요. 확인 부탁드려요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
UNIQUE INDEX와 PRIMARY KEY의 기능적차이
안녕하세요 강사님!다름이 아니라 제가 이해하기로 UNIQUE INDEX와 PRIMARY KEY가 하는 기능은 똑같은 것 같은데(유일성) 어떤점이 다른건지 궁금합니다. 단지 테이블에 하나만 걸 수 있고 여러개를 걸 수 있고의 차이밖에 없는걸까요?
-
해결됨데이터 분석 SQL Fundamentals
조인관련 문의
안녕하세요. 조인관련 실습을 하다가 궁금한점이 있어 문의드립니다.-- 직원명 SMITH의 과거 소속 부서 정보를 구할 것. 예제를 실행하려다 보니 저의 경우일단 가장먼저 보이는 emp와 dept 테이블을 join하고 (JOIN순서는 상관 없다고 하셔서..)나머지 테이블인 emp_dept_hist 테이블을 연결해주려 하다보니 아래와 같은 join 조건을 쓰게 되고 당연히 결과가 다르게 나오더라구요.결과를 알고 보니 emp와 dept 테이블을 연결 안해야 하는게? 맞는거 같긴한데..제가 여러 테이블을 조인할때 어느 부분을 놓치고 있는 걸까요? ㅜ(ANSI가 아직 익숙하지 않아 일단 기존 방식으로 쿼리를 작성했습니다..) SELECT a.ename , c.fromdate , c.todate , b.deptno , b.dnameFROM emp a, dept b, emp_dept_hist cWHERE a.deptno = b.deptnoAND a.empno = c.empnoAND b.deptno = c.deptnoAND a.ename = 'SMITH';
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
PK 컬럼에 대한 DISTINCT 적용
안녕하세요 선생님. 강의 항상 잘 듣고 있습니다.PK인 컬럼에 대해 DISTINCT를 적용하는 것에 대한 의문이 들어 질문을 남깁니다.PK는 해당 테이블의 가장 고유한 값이기에 중복되지 않는 고유한 값을 가지고 있는 것으로 알고 있는데, GROUP BY에서 COUNT를 적용하는 과정에서 (PK인 컬럼에 대해) DISTINCT를 적용하여 세는 것이 가장 일반적인 방법이라고 말씀하신 이유가 궁금합니다. PK가 아닌 다른 컬럼에 대한 적용을 염두한 말씀이신가요?(해당 사례는 CUSTOMERS 테이블에 대해 CustomerID를 DISTINCT로 적용하여 COUNT하는 상황이었습니다.) 아니면 다른 이유가 있는 것인지 궁금합니다.아래의 세 집계함수에 어떤 차이가 있는 것인지 궁금합니다.COUNT(DISTINCT PK)COUNT(PK)COUNT(*)감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
Self primary key를 이용한 delete 질문
Where p1.id > p2.id 조건을 delete하는 의미는 p1.id 3, p2.id 1 인 경우만 delete 되어야 하는데, p1.id 1, p2.id 3 / p1.id 3, p2.id 3 은 왜 delete가 되나요?
-
미해결데이터 분석 SQL Fundamentals
mysql에서는 백업파일을 업로드 못하나요?
mysql workbench를 사용 중인데 여기에 데이터를 올려서 실습을 진행할 수 없는지가 궁금합니다!할 수 있다면 어떻게 해야 하나요?
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 활용!
홍팍 선생님 질문입니다! sql!
sql 섹션 5의 돈가스 판매금액,모두얼마나와요? 여기서 where 말고 and 를 쓰시는데두개가 같은 의미를 가지고있는거 맞나요?
-
미해결[리뉴얼] SQL 베이스캠프
노션 자료 질문
[제품 이름이 'A'로 시작하면서 가격이 평균 이상인 제품을 구해주세요. 아래와 같이 작성하면 애러가 발생됩니다. 이유를 설명하고, 코드를 작성하세요.]2회차 자료 마지막 문제인데 답이 뭔가요?
-
미해결데이터 분석 SQL Fundamentals
oracle로 해당 부분을 진행하고 싶은데 방법이 있을가요.
date_part 나 justify_inteval, age 함수의 postgresql에서만 되는 걸로 확인이 됩니다. 같이 공부하고 있지만 저는 실제로 oracle을 사용하고 있기 때문에 오라클에서도 오늘날짜 - 입사 날짜를 하였을 때 근속년수가 xx년 x월 이렇게 나오게 하고 싶은데 extract(year from sysdate) - extract(year from hiredate)||'년' 으로 하면 년도만 나오는 방법만 생각이 나서요. 혹시 방법이 있다면 알려주시면 감사하겠습니다.
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 입문!
홍팍선생님! 질문입니다!
DISTINCT 함수(거래처 목록, 중복 없이 뽑아주세요) 이 강의에서과제를 내주셨잖아요? 거래내역의 입금 총액은? 이렇게요 . --거래내역의 총합SELECT sum(amount) as totalFROM transactions;이걸 말씀하시는건지.. 아니면 제가 문제를 이해를 못하는건가요 ...혹시 답을 적어주실수있나요 선생님의 과제 의도를 이해하고싶어서요
-
미해결다양한 사례로 익히는 SQL 데이터 분석
'작년 대비 동월 매출 비교 SQL로 구하기' 문의 드립니다.
작년 대비 동월 매출 비교 SQL로 구하기 부분에서lag 함수로 12 row 이전의 데이터를 가져오셨는데,실제 데이터가 특정 월에 매출이 발생하지 않는 케이스를 포함할 경우에는 어떻게 해야할지 문의 드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
DAU, WAU, MAU를 SQL로 구하기-02 관련 질문드립니다.
withtemp_00 as (select generate_series('2016-08-02'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as daufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '1 days') and visit_stime < b.current_dategroup by b.current_date 위 SQL문에서where visit_stime >= (b.current_date - interval '1 days') and visit_stime < b.current_date이 부분이 이해가 가지 않습니다.current_date가 2016-08-02일 경우visit_stime이 2016-08-02보다는 작아야 하고,2016-08-01보다는 크거나 같다는 말인데..그럼 즉, 2016-08-01 00:00:00 ~2016-08-01 23:59:59 라는 건데요..그럼 이게 2016-08-01의 DAU가 아닌가요?..select 절에서는 current_date로 group by를 해서추출된 데이터는 2016-08-02의 DAU로 추출이 되더라구요..실제 csv파일로 받아서 보아도,2016-08-01의 dau가 1569로 확인이 되는거 같기두 하구요.. withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as daufrom ga_sess across join temp_00 bwhere visit_stime >= b.current_date and visit_stime < (b.current_date + interval '1 days')group by b.current_date withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as waufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '6 days') and visit_stime < (b.current_date + interval '1 days')group by b.current_date; withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as maufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '29 days') and visit_stime < (b.current_date + interval '1 days')group by b.current_date; 이렇게 구하는게 맞는거 아닌지 문의드립니다 !
-
미해결데이터 분석 SQL Fundamentals
메인 쿼리 집합 레벨 변경 관련 질문입니다.
select * from nw.orders where (customer_id,order_date) in (select customer_id,max(order_date) from nw.orders group by customer_id)이 쿼리를 날려도 customer_id 레벨이 M이라 LACOR이라는 value가 중복이 되는 건가요? 강의에선 메인 쿼리 레벨이 1이고 서브 쿼리 레벨이 M일 때 메인 쿼리 레벨이 1로 유지된다고 했는데, 이 쿼리처럼 메인 쿼리 레벨이 M이고 서브 쿼리 레벨이 1일 때도 메인 쿼리 레벨은 M으로 유지된다고 이해해도 괜찮을까요?
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
질문드리겠습니다.
select substr(birthdate, 1, 7) as month, count(*) as cnt from Employees group by month; 위와같은 쿼리를 이용하여 문제를 푸는 도중처음에는 groupby month 를 사용하지 않았습니다.그 결과 month 의 컬럼에는 1968-12 이 출력되어 나왔는데 제일 최근 년도도 아니고, 오래된 년도도 아니고 왜 이친구가 대표로 출력되어 나오는건가요..?