38,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
TOP Earners 해설 관련 질문드립니다!
안녕하세요! 문제 해설 강의를 듣다가 궁금한 점이 있어 질문드립니다! 아래 쿼리에서 COUNT(earnings)가 아닌 COUNT(*) 구문이어야 하는 이유가 있을까요? salary*months를 세는 것인데 COUNT(earnings)가 아닌 이유가 궁금합니다. SQL은 쓴 순서대로 처리되므로 GROUP BY가 뒤에 나오는 관계로 첫 문장인 SELECT 구문에서는 COUNT(*)로 우선 적어야 한다고 이해했는데, 맞을지 궁금합니다. SELECT salary*months as earnings, COUNT(*) FROM employee GROUP BY earnings ORDER BY earnings DESC LIMIT 1 답변 부탁드립니다!
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
LEFT JOIN할 때 왜 JOIN한 아이디도 NULL이 나오나요?
강의 중 Customers와 Orders를 LEFT JOIN할 때, Orders에 데이터가 없는 고객의 경우 가장 왼쪽의 CustomerID 부분도 NULL로 뜨는 데, 왜 그렇게 나오는지 궁금합니다. Customers 테이블에서는 CustomersID가 부여되어 있는데, Orders에는 동일한 데이터가 없다는 이유로 NULL이 나오는 것이라면 강의 피피티에서 아래 사진처럼 데이터가 없는 경우에도 id가 3이 나온 건 어떻게 나올 수 있던 걸까요?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
왜 Inner join인지 모르겠습니다.
안녕하세요, 항상 수업 잘 듣고 있습니다! Inner join과 left join 의 차이가 '데이터 비어있을 때 NaN이 뜨는데, 이걸 제외해서는 안되는 경우 left join 을 쓴다' 맞을까요? 맞다면, 일단 웬만한 경우에는 left join을 쓰고 NaN을 처리하는 것이 안전해보이는데 풀어주신 세 문제 전부 Inner join을 쓰신 이유가 있나요? 일단 Left join으로 문제 풀었을 때 오답이 나왔는데, 왜 오답인지 와닿지가 않습니다. + 제가 짜본 코드가 강의에서 보여주신 코드와 딱 한 지점이 다르거든요. INNER JOIN 을 LEFT JOIN 으로 써서, NULL 266866 요 NULL 대륙이 추가되어 있는데, 이거는 필요가 없는 데이터인가요? T-T 어떤 NULL은 유의미하고, 어떤 NULL은 일단 무시해도 되는지 그 기준을 잡기가 어려운데, 조언 받고 싶습니다!
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
AS 사용의 위치가 헷갈립니다
안녕하세요 선미님 leetcode 의 1179번 문제 풀면서 AS 위치를 어디에 둘지 몰라서 한참 고민했습니다. AS는 무조건 절의 맨 끝에 쓰는 것이 맞나요? 아니면 위치가 상관 없을까요?
- 해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
JOIN 에서 AND 와 WHERE의 차이
안녕하세요, 해커랭크 African Cities 를 풀다가 아래와 같은 질문이 생겼습니다. African Cities SELECT city.name FROM city INNER JOIN country ON city.countrycode = country.code AND country.continent = 'africa' 마지막 줄에 WHERE 대신 AND를 썼을 때도 정답이 되었는데, WHERE와 어떤 차이가 있나요? 머리 속으로 그려봤을 때 해당 문제의 경우는 AND를 써도 무방한 것 같은데, 바람직한(?) 방법은 배운대로 WHERE을 쓰는 게 맞을까요?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
HAVING 과 WHERE
안녕하세요! 강의 잘 듣고 있습니다. AVG(Price) AS avg_price 로 변수를 할당해준 후에 HAVING에 집어넣는 대신에, GROUP BY 한 후에, 그 아래에 WHERE AVG(Price) >= 100 을 쓰면 안되는 건가요? 반드시 SELECT 에서 변수 할당을 해주어야 하는 건가요? 그렇다면 LIKE를 WHERE과 묶어서 사용하듯이 GROUP BY는 HAVING과 무조건 같이 간다고 생각하면 될까요 ? ㅠㅠ
- 해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
쿼리문의 실행순서에 대한 문의
SELECT CASE WHEN CategoryID = 1 THEN '음료' WHEN CategoryID = 2 THEN '소스' ELSE '이외' END AS new_category , AVG(Price) FROM Products GROUP BY new_category; 저는 SELECT문이 GROUP BY문 이후에 실행되는 것으로 알고 있는데, 위 쿼리문의 GROUP BY에서 어떻게 SELECT문의 alias를 사용할 수 있는지 궁금합니다.
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
중급강의 완료했습니다 ^^ 질문 한번 봐주시면 감사하겠습니다!
우선 제가 인프런에서 들은 강의 중에 제일 완주 빨리했던것같아요! 너무 감사해요 그리고, Recommendation system도 들으려고 합니다^^ 팔로우업 질문이 있는데 답변해주시면 감사하겠습니다. 1. 중급듣고 초급도 오늘 등록했어요! 초급에서 혹시 제가 놓친게 있을까봐요. 그리고 고급도 완주하려하는데, 고급이 제가 Data analyst 포지션 인터뷰에 도움이 될까요? 아니면 초급중급이면 괜찮은지 궁금합니다. 2. 선생님께서 추천해주신 싸이트 https://programmers.co.kr/ 에서 GROUP BY 섹션 연습문제를 풀다가 질문이 생겨서요! 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 예시 SQL문을 실행하면 다음과 같이 나와야 합니다. HOUR COUNT 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 3 8 1 9 1 10 2 11 13 12 10 13 14 14 9 15 7 16 10 17 12 18 16 19 2 20 0 21 0 22 0 23 0 제가 푼 방법은 아래와 같습니다(답을 맞추지못했어요). 근데 다른 사람들 푼 문제를 보니 SET과 LPAD, IFNULL을 이용하신 분들이 많더라구요.. 이게 복잡한 문제인지 궁금합니다. 혹시 간략하게 알려주실 수 있으면 너무 감사하겠습니다. 항상응원할게요! SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) AS COUNT FROM ANIMAL_OUTS WHERE HOUR(DATETIME) BETWEEN 0 AND 23 GROUP BY HOUR(DATETIME) ORDER BY HOUR(DATETIME)
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
말도 안되는 쿼리인데 한번 봐주시면 안될까요?
select max(months * salary), count(*) from employee; 근본적으로 잘못된거 알고있는데, 집계함수 연산함수? 실행순서 개념이 헷갈려서 질문드립니다. 저렇게 하면 결과값이 아예 안나오겠죠?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
안녕하세요.
안녕하세요. 백문의 불여일타 강의 초급, 중급, 고급 신청해서 잘 듣고 있습니다.^^ cheat sheet까지 제공해 주셔서 너무 감사드려요~ㅎㅎ 고급강의는 강의자료까지 올려주셔서 복습하기에 너무 좋은 것 같습니다. 그런데 초급과 중급강의는 강의 기간도 3개월이라서 수강기간이 지나면 복습하기가 어려울 것 같아요..ㅜㅜ 그래서 강의가 끝나도 복습할 수 있도록 초급, 중급강의의 강의 자료도 올려주실 수 있을까요~?...
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
안녕하세요, 해커뱅크 top earners 문제와 관련하여 질문드려요.
SELECT months*salary AS earnings , count(earnings) -- 여기에 earnings를 카운트하고 싶어서 이렇게 넣었는데 자꾸 오류가 나더라구요, 왜 그런가요? FROM employee GROUP BY earnings ORDER BY earnings DESC LIMIT 1
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
해커랭크 Group by 예제 oracle 질문이요!!
강의 잘듣고있습니다. 너무 유익해요 ㅠㅠ 다름이 아니라 oracle에서는 alias가 서브쿼리없이는 조건절에 사용할 수 없는것 같은데 그러면 아래 코드처럼 SELECT A.* FROM ( SELECT SALARY * MONTHS AS EARNINGS ,COUNT(*) FROM EMPLOYEE GROUP BY SALARY * MONTHS ORDER BY SALARY * MONTHS DESC ) A WHERE ROWNUM = 1 salary * months 를 반복해서 3번이나 적어줘야 되더라고요 너무 비효율적인거같아서 서브쿼리?안에서 alias만들어서 alias를 바깥에서 사용하는 방법을 찾아봤는데 정렬도 꼬이고 값이 이상해져서 사용방법을 잘 모르겠어요.. 오라클도 mysql처럼 alias를 조건절에 사용할 수 있는 방법이 있을까요?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
쿼리 실행 순서
안녕하세요. top earners에 대해 질문이 있습니다. 코드가 select months*salary as earning, count(*) from employee group by earning order by earning desc limit 1 로 되어 있는데요. 제가 알기로는 쿼리 실행 순서가 group by -> select 인 걸로 아는데. 어떻게 group by가 earning에 걸릴 수 있는 지 모르겠습니다.ㅜㅜ 저는 from에 서브쿼리로 earning이 있는 table을 만들어서 실행했는데요. 위의 코드가 돌아가는 걸 보고 깜짝 놀랐습니다. ( *제가 쓴 코드입니다. select earning, count(*) from (select months*salary as earning from employee) as new_table group by earning order by earning desc limit 1) 이해를 해야 다음에 같은 문제가 나왔을 때 해결할 수 있을것 같아 질문 드립니다. 답변 부탁드리겠습니다.
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
해커랭크의 Weather Observation Station 5 문제 혹시 여쭤볼수있을까요
안녕하세요~ 중급반 수강 마치고 고급반 듣기전에 해커랭크 문제들 많이 풀어보는 중입니다! 혹시 Weather Observation Station 5 의 쿼리는 어떻게 짜면될지 여쭤볼수있을까요? ㅠㅠ 몇번 해보다가 다 답이 아닌것같아 여쭤봅니다!!
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
LEFT JOIN 문제풀이 중 질문이 있습니다.
안녕하세요 LEFT JOIN 문제 도중 궁금한 부분이 있어 질문드립니다. 선생님께서 풀이해주신 부분은 where 절을 o.id is null 로 풀이해주셨는데요. 제가 작성한 쿼리는 select c.Name as Customers from Customers as c left join Orders as o on c.id = o.Customerid where o.CustomerId is null; 위와 같이 작성하였습니다. 저는 Orders(주문) 테이블에 주문한 고객 id가 3, 1 두개 뿐이었으므로 1,3을 제외한 주문이 없기때문에 null인 값을 호출한다는 의미로 where o.CustomerId is null; 을 작성하였는데요. 쿼리 실행결과는 리트코드상에서 Success라고 뜨긴했지만 선생님이 풀이해주신 부분과 제 쿼리가 실행 중 어떤 차이점이 있을지 궁금합니다.
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
해커랭크 African Cities 문제 풀이 관련 질문입니다.
안녕하세요 INNER JOIN 문제 푸는 도중 질문드릴게 있어 글 올립니다. 해커랭크 문제 중 African Cities 문제에서 아래 사진처럼 제가 쿼리를 작성한 후 RunCode로 실행시키려 하면 아래처럼 오류가 발생합니다. 선생님의 해설강의 및 다른 분들이 푸신 답과 비교했을 때 큰 차이점을 못느끼겠는데 왜 제꺼는 오답처리가 되는지 궁금합니다.. 원문 select city.name from city INNER JOIN country ON city.countrycode = country.code where counrty.continent = 'Africa'
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
LeetCode의 197. Rising Temperature 문제 질문입니다.
안녕하세요. LeetCode의 197. Rising Temperature 문제에서 Self Join을 할 때, 다음과 같이 INNER JOIN을 사용해주셨는데 /* SELECT today.id as Id FROM weather as today INNER JOIN weather as yesterday ON datediff(today.recorddate, yesterday.recorddate) = 1 # datediff 함수 대신, date_add 함수를 다음과 같이 사용할수도 있다 # INNER JOIN weather as yesterday ON date_add(yesterday.recorddate, interval 1 day) = today.recorddate WHERE today.temperature > yesterday.temperature */ Self Join 관련 구글링을 해보니, "INNER JOIN" 대신에 "CROSS JOIN" 또는 "JOIN"를 보통 사용하던데, 혹시 INNER JOIN을 사용하시는 특별한 이유가 있으신지 궁금합니다! INNER JOIN, CROSS JOIN, JOIN 위 3가지 방법을 각각 수행했을 때, 출력 결과는 동일하던데 그러면 세 가지 방법들 중, 아무거나 사용해도 무방한건가요?
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
LeetCode CASE문 WHEN절을 사용한 1179번 문제 질문입니다.
안녕하세요. LeetCode 1179번 문제에서 헷갈리는 부분이 있어서 질문 드립니다. 우선 답안 해설 코드는 다음과 같다고 강의에서 보았습니다. 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 여기서 질문 드립니다. group by id를 수행하면서 select 문 내에 집계함수 SUM을 사용하셨는데, SUM 함수를 왜 사용한건지 잘 이해가 가지 않습니다..(즉, SUM 함수를 사용하지 않고 그냥 group by id 만 사용하면 틀린 답이 나오는데, 이 부분에 대한 설명 좀 부탁드립니다) 구글링을 해보니 group by 는 집계함수와 같이 사용해야 한다고 나와있긴 하던데...잘 이해가 가지 않네요 ㅜㅜ 또한 구글링 예시에서는 SUM 함수 말고 MAX 함수를 사용했던데, 결과는 SUM 함수를 사용했을 때와 동일하게 나오더군요. 이 부분에 대해서 자세히 설명해주시면 감사하겠습니다!
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
리트코드문제
20년 3월 24일에 듣고있는데 리트코드가 유료화 되었더라구요.. 유료화되어 문제를 풀려면 따로 돈을 지불해야하는지 아니면 다른 방법이 있는지 문의드립니다. 감사합니다.
- 미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
고급SQL 언제올라오나요???
개인적으로 고급SQL 강의가 제일 기다는 1인으로써 요청사항이 있다면 SQL 활용해 실제 웹을 크롤링 해보는 수업을 진행하셨음 좋겠어요. 그 예로 KCI 의 oai 프로토콜을 이용해 학술지를 수집해보는 실전연습 어떨까요??