- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Group By 실습 -01 강의 ,1분 20초 select deptno, max(sal) as maxsal , min(sal) as minsal, round(avg(sal),2) as avgsal from hr.emp e group by e.deptno having round(avg(sal), 2) >=2000; avgsal >= 2000 을 사용하려했는데, 안되더군요. 원래 having절에서는 안되나요?
안녕하세요. sql기초를 닦고 데이터테크놀리지학과에 재학중인 학생입니다. 제가 궁금한부분은 다음관같아요. 백엔드부분은 어디까지 알면 좋을까요?데이터엔지니어를 희망하며 Sql공부중이고,Spark,kafka,airflow같은 부분도 공부를 해야할텐데. 비중을 저는 백엔드(java spring jpa) 보단 당연히 sql,spark,kafka,airflow에 실어야된다고 생각해요. 비중을 이쪽에 실으되, 백엔드(java spring jpa)공부도 하긴해야할텐데 어느정도까지는 그래도 해야된다.할줄알아야한다.이런게 있을까요? 아니다. 잘못알고있다.둘다잘해야한다.? 할게많아서 다하기 쉽지 않을것같아서 고민입니다. . Spring jpa도 비중있게 공부해야한다면 지금 조금 학습한상태에서 + 스프링db(JdbcTemplate, MyBatis 같은 SQL 매퍼 기술 부터, JPA, 스프링 데이터 JPA, Querydsl, 쓰레드로컬, 스프링aop), 스프링활용(스프링 부트와 JPA를 활용해서 웹 애플리케이션 개발, rest api개발) ,스프링부트, 스프링 데이터jpa, 이정도 계획입니다. 부족할까요? 과할까요 정보의 홍수에서 권철님 선생님의 조언이 제 올바른 방향의 길잡이에 큰 도움이 될것같습니다. 감사합니다
안녕하세요. 총 정리 문제 풀이 5번의 선생님의 쿼리와, 해설을 보기 전에 개인적으로 써본 쿼리의 각각의 결과가 달라 어디서 오류를 범했는지 알고 싶어 질문합니다. 선생님께서 쓰신 쿼리는 다음과 같았습니다. WITH에서 먼저 trainer_pokemon과 pokemon을 JOIN한 후, 마지막에 trainer를 JOIN하셨습니다. 결과는 Kyle의 포켓몬 공격력+방어력 총합 1951였습니다. WITH total_stats AS ( SELECT tp.trainer_id, SUM(p.attack + p.defense) AS total_stat, FROM basic.trainer_pokemon AS tp LEFT JOIN basic.pokemon AS p ON tp.pokemon_id = p.id GROUP BY tp.trainer_id ) SELECT t.name, ts.trainer_id, ts.total_stat FROM total_stats AS ts LEFT JOIN basic.trainer AS t ON ts.trainer_id = t.id ORDER BY total_stat DESC LIMIT 1 그리고 저는 다음과 같이 썼습니다. 선생님의 순서와 다르게, WITH에서 먼저 trainer_pokemon과 trainer를 JOIN한 후, 마지막에 pokemon을 JOIN했습니다. 결과는 Kyle의 포켓몬 공격력+방어력 총합 1856였습니다. WITH pokemon_cnt_table AS( SELECT t.id, t.name, tp.pokemon_id, COUNT(tp.id) AS pokemon_cnt, FROM `basic.trainer_pokemon` AS tp LEFT JOIN `basic.trainer` AS t ON tp.trainer_id = t.id GROUP BY t.id, t.name, tp.pokemon_id ) SELECT pct.id, pct.name, SUM(attack) AS attack_sum, SUM(defense) AS defense_sum, SUM(attack + defense) AS a_plus_d_sum, FROM pokemon_cnt_table AS pct LEFT JOIN `basic.pokemon` AS p ON pct.pokemon_id = p.id GROUP BY pct.id, pct.name ORDER BY a_plus_d_sum DESC LIMIT 1 결과가 달라진 이유에 대해, 제 나름대로 생각해 본 것은, JOIN의 순서가 달라 WITH 내의 1) SELECT, 2) FROM ON의 키도 다른 점이 출력 데이터에 영향을 준 것이 아닐까 하는 것입니다. JOIN의 순서 차이로 결과가 달라질 수 있을까요? 제가 작성한 쿼리의 오류에 대한 확인이 번거로우시다면, 결과에 대한 JOIN 순서 차이의 영향 유무에 대해서만 답해 주셔도 감사하겠습니다. 미리 감사합니다.
안녕하세요. 현재 sql 강좌 수강 중에 빅쿼리 테이블 만들기가 오류가 떠서 질문드립니다. 업로드 할 csv 파일은 압축풀고 여러번 업로드 했으나 충돌이 많이 된다고 테이블 생성이 되지 않습니다. csv 파일 자체에 들어가보니, max os ~ 라고 되어 있던데 저는 윈도우 사용자인데 이때 어떻게 오류 해결 해야 하나요? ** 에러 메세지와 이미지 캡쳐본 >> Error while reading data, error message: CSV processing encountered too many errors, giving up. Rows: 0; errors: 1; max bad: 0; error percent: 0
안녕하세요. 조건문 연습 문제 5번의 선생님께서 쓰신 정답에 관해 질문입니다. select 안에, 포획 날짜를 표시하기 위해 원래 basic.trainer_pokemon 안에 존재하는 catch_datetime을 쓰셨는데, Asia/Seoul 시간대로 변경되지 않은 상태를 그대로 쓰신 이유가 있을까요? SELECT id, trainer_id, pokemon_id, catch_datetime, IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old FROM `basic.trainer_pokemon` if 함수 내에서 수정한 날짜를 보여주기 위해, 똑같이 수정한 날짜를 썼는데, 문제 없을까요? SELECT id, trainer_id, pokemon_id, DATE(catch_datetime, "Asia/Seoul") as corrected_catch_date, IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old FROM `basic.trainer_pokemon` 미리 감사합니다.
안녕하세요, 4-5. 연습 문제 1번 (#트레이너가 포켓몬을 포획한 날짜(catch_date)를 기준으로, 2023년 1월에 포획한 포켓몬의 수를 계산해 주세요.) 의 정답을 보고 의문이 있어 질문 올립니다. 선생님께선 아래와 같이 쿼리를 작성해 주셨는데요. count 함수의 변수, id는 처음부터 고유한 번호인데 distinct를 걸어주신 이유를 알고 싶습니다. (count 결과는 85) select count(distinct id) as cnt from `basic.trainer_pokemon` where extract (year from datetime(catch_datetime, "Asia/Seoul")) = 2023 and extract (month from datetime(catch_datetime, "Asia/Seoul")) = 1 실험적으로, trainer_id를 변수로 쓴 것과, distinct를 걸어서 trainer_id를 변수로 쓴 것의 결과를 확인해 보니, 각각 85, 48이었습니다. select count(trainer_id) as cnt, count(distinct trainer_id) as distinct_cnt from `basic.trainer_pokemon` where extract (year from datetime(catch_datetime, "Asia/Seoul")) = 2023 and extract (month from datetime(catch_datetime, "Asia/Seoul")) = 1 1명의 트레이너가 2023년 1월에 2마리 이상의 포켓몬을 포획하는 경우도 있을 수 있으니, distinct를 걸어버리면, 1월에 여러 번 포획한 횟수가 1회로 줄어버리지 않을까 생각되는데, 잘못된 곳이 있다면 짚어주셨으면 합니다. 미리 감사합니다.
안녕하세요. ERD 읽는법 강의에 사용된 표 자료에서 보면은, ONE - MANY 가 보통 컬럼으로 매치가 되는데 테이블 : 테이블로 ONE-MANY가 매치 되는곳이 두군데 있더라구요. employees(one) - orders(many) products(one) - orderdetails (many) 그런데 orders 테이블안을 보면 employees를 전체 사용하는 무언가가 있는것이 아닌, employeeID가 FK 되어 있거든요. 그러면 테이블별 매칭이 아닌 employee테이블 내 employeeID 컬럼 (one) - orders테이블 내 employeesid(many)로 연결되어야 하는게 아닌가요?
안녕하세요. as로 명명하는 것에 관해 질문드립니다. "2-5. 집계(GROUP BY + HAVING + SUM/COUNT)"에서 선생님께선 다음과 같이 쿼리를 작성해주셨는데요. select type1, count(id) as cnt from `basic.pokemon` group by type1 having cnt >= 10 order by cnt desc count(id)를 cnt로 명명한 후, having과 order by에서 그 별명을 이용하여 간단히 입력하신 걸 이해했습니다. 여기서 sql에 익숙해지고자, 여러 시험을 해보았는데, 다음과 같은 쿼리도 같은 결과를 출력할 수 있었습니다. select type1, count(type1) as cnt from `basic.pokemon` group by type1 having count(id) >= 10 order by count(kor_name) desc select 내의 count 괄호 내에는 type1 열을 불러 읽고, having 내의 count 괄호 내에는 id 열을 불러 읽고, order by 내의 count 괄호 내에는 kor_name 열을 불러 읽고, as로 select 내의 count 함수를 따로 명명해주었지만 그 별명을 사용하지는 않았습니다. 즉, 각 count 함수의 변수를 모두 전혀 다른 것들을 불러 읽는 엉망진창(...)으로 만들어 보았는데요. 그럼에도 불구하고, 문제 없이 같은 결과가 출력된다는 것은, as는 입력 간편화를 위해 이용하는 것이니, 명명을 하더라도 이용하지 않아도 출력상 문제는 없다고 이해해도 될까요? 그리고 count 내 변수를 랜덤하게 지정해도 같은 결과가 나옴에도 불구하고, id 열을 변수로 쓰는 이유는, 실무에서는 값이 누락되어 있을 가능성이 있을 열이 아닌, 하나의 row마다 반드시 값이 주어지는 열(=id 열)을 쓰는 것이 잘못된 집계를 피하기 위함이라고 이해해도 될까요? 글이 길어졌지만, 답변을 기다립니다. 미리 감사합니다.
안녕하세요. 저는 아래와 같이 interval 앞에 연산기호 '-' 를 넣고, left join 을 이용했는데요. self join 시에 이렇게 사용하면 오답처리될 확률이 높을까요? # Write your MySQL query statement below SELECT t.id as id FROM weather t LEFT JOIN weather y on t.recordDate - interval 1 day = y.recordDate WHERE T.temperature > y.temperature;
파이널 SQL 연습의 연습문제 1에 대한 질문입니다. (1분 38초) 포괄적인 질문이 될 수 있겠으나, 해당 연습문제에 대해 서브쿼리를 사용하여 구문을 만들어보려고 하였는데 논리적으로 짜는 것에 한계를 느꼈습니다. (애초에 연습문제1에 대해 서브쿼리를 사용하는 것이 가능한지 아닌지, 가능한데 못하고 있는 건지에 대한 판단조차 서지 않아서 여쭙고 싶었습니다.) JOIN문 작성이 어느 정도 가능하다면, 서브쿼리 단련에 그렇게 힘을 쓰지 않아도 될까요?
join employee b on a.key = b.key and a.fromdate betweeen b.fromdate and b.todate 여기서 질문 있습니다! join 을 할때 between 조건을 걸어주는 것과 이렇게 where 절에 조건을 걸어주는 게 어떤 차이가 있는지 궁금합니다. ~ join employee b on a.key = b.key where a.fromdate betweeen b.fromdate and b.todate 조인 조건에 조건을 추가하는 것과 where 절에 조건을 추가하는게 똑같아보이는데 차이가 있을까요
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 파이썬 관련 생성이 안보이고 notebook terminal console new file new folder 이렇게만 보여집니다.
안녕하세요 선생님~ 해당 문제를 윈도우함수로 풀었는데, submit을 하니 일부 테스트케이스에서 오답으로 되어 질문드립니다. 아래 input에서 id 3이 존재하지 않아, 해당 테이블의 num컬럼을 1,1,null,1,1,2,1 로 정의하고 풀어야 할 것 같습니다.(실제로 expected output에 아무 값도 나오지 않아야 함) 강의에 나오는 쿼리로는 id가 빠져있는 경우를 처리하지 않고, 명시적으로 나와있는 데이터의 연속성만 판단하고 있습니다. 아래와 같은 예외케이스를 포괄할 수 있는 쿼리를 어떻게 짜야할지 조언주시면 감사하겠습니다. 제가 작성한 쿼리도 첨부합니다!