묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨SQL 시작도 못한 분들 드루와요빅쿼리 테이블 만들기 오류안녕하세요. 현재 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 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문4-7. 조건문 연습 문제 5번에 관한 질문안녕하세요.조건문 연습 문제 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` 미리 감사합니다. 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문4-5. 연습 문제 1번의 정답에 관해 질문안녕하세요, 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회로 줄어버리지 않을까 생각되는데, 잘못된 곳이 있다면 짚어주셨으면 합니다. 미리 감사합니다. 
- 
      
        
    미해결[백문이불여일타] 데이터 분석을 위한 고급 SQLERD 읽는법에 추가 질문 있어요안녕하세요. ERD 읽는법 강의에 사용된 표 자료에서 보면은, ONE - MANY 가 보통 컬럼으로 매치가 되는데테이블 : 테이블로 ONE-MANY가 매치 되는곳이 두군데 있더라구요.employees(one) - orders(many)products(one) - orderdetails (many)그런데 orders 테이블안을 보면 employees를 전체 사용하는 무언가가 있는것이 아닌, employeeID가 FK 되어 있거든요. 그러면 테이블별 매칭이 아닌 employee테이블 내 employeeID 컬럼 (one) - orders테이블 내 employeesid(many)로 연결되어야 하는게 아닌가요? 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문as 명명, count 함수 내 변수 선택에 관한 질문안녕하세요.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 desccount(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) descselect 내의 count 괄호 내에는 type1 열을 불러 읽고,having 내의 count 괄호 내에는 id 열을 불러 읽고,order by 내의 count 괄호 내에는 kor_name 열을 불러 읽고, as로 select 내의 count 함수를 따로 명명해주었지만 그 별명을 사용하지는 않았습니다.즉, 각 count 함수의 변수를 모두 전혀 다른 것들을 불러 읽는 엉망진창(...)으로 만들어 보았는데요. 그럼에도 불구하고, 문제 없이 같은 결과가 출력된다는 것은, as는 입력 간편화를 위해 이용하는 것이니, 명명을 하더라도 이용하지 않아도 출력상 문제는 없다고 이해해도 될까요? 그리고 count 내 변수를 랜덤하게 지정해도 같은 결과가 나옴에도 불구하고, id 열을 변수로 쓰는 이유는, 실무에서는 값이 누락되어 있을 가능성이 있을 열이 아닌, 하나의 row마다 반드시 값이 주어지는 열(=id 열)을 쓰는 것이 잘못된 집계를 피하기 위함이라고 이해해도 될까요? 글이 길어졌지만, 답변을 기다립니다.미리 감사합니다. 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문쿼리 환경설정 오류안녕하세요!SELECT(들여쓰기)*FROM 'basic.pokemon'ORDER BY id 와 같이 쿼리를 작성하였는데, 저런 오류가 나는 이유가 무엇일까요...? 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문Espanso 설치시 지속적으로 에러가 나서 문의드립니다.안녕하세요! Espanso 를 윈도우 버전으로 다운로드해서 설치하려고하는데 지속적으로 하기 에러가 나고있습니다. 혹시 제가 뭔가 잘못설치한건지 확인 한번 부탁드립니다! 
- 
      
        
    미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL시간 계산...안녕하세요. 저는 아래와 같이 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 Fundamentalswith 문, 인라인 서브쿼리 등 사용하는 기준이 궁금합니다with 절이나 인라인 서브쿼리처럼 그룹을 나눠서 쓰시는 것과 그냥 한 뭉터기로 푸는 것과 기준이 감이 잡히지 않습니다 그룹을 나누는 기준이 궁금합니다 또 그룹을 나누어야 한다면 temp_01 , temp_02 처럼 몇 번을 나눠야 할지의 기준도 궁금합니다 
- 
      
        
    미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]JOIN문과 서브쿼리 작성 관련파이널 SQL 연습의 연습문제 1에 대한 질문입니다. (1분 38초)포괄적인 질문이 될 수 있겠으나, 해당 연습문제에 대해 서브쿼리를 사용하여 구문을 만들어보려고 하였는데 논리적으로 짜는 것에 한계를 느꼈습니다. (애초에 연습문제1에 대해 서브쿼리를 사용하는 것이 가능한지 아닌지, 가능한데 못하고 있는 건지에 대한 판단조차 서지 않아서 여쭙고 싶었습니다.) JOIN문 작성이 어느 정도 가능하다면, 서브쿼리 단련에 그렇게 힘을 쓰지 않아도 될까요? 
- 
      
        
    해결됨데이터 분석 SQL Fundamentalsjoin 질문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.keywhere a.fromdate betweeen b.fromdate and b.todate 조인 조건에 조건을 추가하는 것과 where 절에 조건을 추가하는게 똑같아보이는데 차이가 있을까요 
- 
      
        
    미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]주피터 노트북 NEW 생성에서 파이썬이 안보입니다.- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 파이썬 관련 생성이 안보이고notebookterminalconsolenew filenew folder이렇게만 보여집니다. 
- 
      
        
    미해결[백문이불여일타] 데이터 분석을 위한 고급 SQLlead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답안녕하세요 선생님~해당 문제를 윈도우함수로 풀었는데, submit을 하니 일부 테스트케이스에서 오답으로 되어 질문드립니다. 아래 input에서 id 3이 존재하지 않아, 해당 테이블의 num컬럼을 1,1,null,1,1,2,1 로 정의하고 풀어야 할 것 같습니다.(실제로 expected output에 아무 값도 나오지 않아야 함) 강의에 나오는 쿼리로는 id가 빠져있는 경우를 처리하지 않고, 명시적으로 나와있는 데이터의 연속성만 판단하고 있습니다. 아래와 같은 예외케이스를 포괄할 수 있는 쿼리를 어떻게 짜야할지 조언주시면 감사하겠습니다.제가 작성한 쿼리도 첨부합니다! 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문WITH 구문1. WITH 사용하지 않고 FROM으로 묶은 후 쿼리 작성 이어나가기2. WITH 사용하기안녕하세요. 위의 두 경우 모두 쿼리 결과는 동일하게 나오는데, WITH를 사용하는 정확한 이유가 오로지 가독성을 위한 것인지, 용량에도 차이가 생기는 것인지 궁금해 질문드립니다.(개인적으로는 문제를 풀 때 바로 묶는 것이 더 편하기 때문에 여쭤봅니다.!) 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]sql 단축키안녕하세요. sql에서 위와 같이 깔끔하게 정렬할 수 있게 도와주는 단축키가 뭐였나요?답변 미리 감사합니다. 
- 
      
        
    해결됨SQL 코딩테스트를 위한 마지막 걸음Date 강의 / leetcode 1321 질문# [Setting] USE PRACTICE; DROP TABLE Customer; CREATE TABLE Customer (customer_id int, name varchar(20), visited_on date, amount int); INSERT INTO Customer (customer_id, name, visited_on, amount) VALUES (44, 'Ashley', '2019-01-04', 160), (23, 'Sabo', '2019-01-04', 70), (38, 'Moustafa', '2019-01-05', 90), (30, 'Halley', '2019-01-06', 140), (5, 'Elvis', '2019-01-07', 160), (12, 'Leslie', '2019-01-08', 100), (23, 'Sabo', '2019-01-08', 90), (13, 'Will', '2019-01-09', 170), (20, 'Brock', '2019-01-10', 160), (29, 'Leo', '2019-01-10', 90), (33, 'Isaac', '2019-01-11', 60), (46, 'Selena', '2019-01-12', 100), (4, 'Winston', '2019-01-13', 150), (15, 'Marti', '2019-01-13', 160); SELECT * FROM Customer;# [my practice] select b.visited_on, sum(amount) as amount, round(sum(a.amount) /7, 2) as average_amount from customer a inner join (select distinct date_sub(visited_on, interval 6 day) as week_before, visited_on from customer) b on a.visited_on between b.week_before and b.visited_on group by b.visited_on having count(amount) >= 7 order by b.visited_on;올려주신 방식 외에 inner join시 date 구간으로 조건 넣는 방식으로 시도해 보았습니다.위 데이터로 삽입하는 경우, MySQL Workbench에서는 예상 결과대로 출력 되는데 leetcode에서 오류가 나서 혹시 제가 코드 상에서 간과하고 있는 부분이 있는지 궁금해서 질문 드립니다.leetcode 내에 PostgreSQL로 유사한 방식의 해결 법은 확인했었는데 혹시나 해서 링크 올려봅니다. https://leetcode.com/problems/restaurant-growth/solutions/5040002/well-explained-postgresql-solution-beats-99 
- 
      
        
    해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL중급반 결재하러 가요!! 기초반 좋았습니다기초반 들었는데 너무 쉽게 설명해주셔서 좋았어요중급반 들으러 갑니다 
- 
      
        
    해결됨MySQL 성능 최적화실무에서 prefix index를 어떤 요구사항이 있을때 사용하는지 궁금합니다!실무 요구사항에서 blob, text, 긴 varchar와 같은 칼럼을 인덱싱하는 경우가 있을까요?당장 기억나는건 게시글 내용 검색 밖에 생각이 안나네요.. 그리고 요 아래글에 나와있는 prefix index의 한계점도 맞는 말일까요?https://stackoverflow.com/questions/31526618/mysql-prefix-index-vs-index(아래는 챗지피티가 요약해준거라 정확하지 않을 수 있습니다 ㅠ)인덱스를 통해 "가능한" 행들을 먼저 찾고, 이후 실제 데이터 행을 검색하여 추가 필터링을 수행(두 단계를 거치므로 인덱스를 사용하지 않을때보다 더 많은 시간 소요..?)2.정렬(sorting)이나 그룹화(grouping) 작업에는 사용되지 않음.ORDER BY 절을 명시적으로 사용하지 않는 한 결과의 순서는 보장되지 않음커버링 인덱스로 사용 불가 
- 
      
        
    미해결다양한 사례로 익히는 SQL 데이터 분석Plotly을 이용해 treemap시각화시 공유사항plotly의 treemap 을 사용해서 시각화 하는 경우 Pandas 2.xxxx 버전에서 append 메소드를 지원하지 않아서 treemap api를 이용해 시각화 시도 하는 경우 append를 지원하지 않는다는 오류 메시지를 밷는 경우를 봅니다. 아마도 plotly가 append 메소드 더 이상 지원하지 않는것에 대해서 패치가 이루어지지 않는 버전이어서 그런 경우가 있습니다. 이런 경우는 plotly의 최선 버전으로 재 인스톨 해주시고 실습을 하시면 됩니다.참고로 저의 실습 버전 plotly 5.7.0 -> 현재는 5.22.0 입니다. 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문JOIN 연습문제 5번 문제 관련해서 질문이 있습니다!안녕하세요! 좋은 강의 감사드립니다. 도움이 많이 되고 있어요.5번 문제 관련해서 질문이 있습니다. 5번 문제에 대해서 저는 쿼리를 이렇게 작성했습니다.SELECT generation, COUNT(tp.id) AS pokemon_cnt FROM ( SELECT id, trainer_id, pokemon_id, status FROM `basic.trainer-pokemon` ) AS tp LEFT JOIN basic.trainer AS t ON tp.trainer_id = t.id LEFT JOIN basic.pokemon AS p ON tp.pokemon_id = p.id WHERE t.hometown = 'Incheon' AND tp.status IN ('Active', 'Training') GROUP BY generation ORDER BY pokemon_cnt DESC강의에서 카일님과 다른 부분은 WHERE 절에 AND 가 더 추가된 부분이에요.문제에서 '보유하고 있나요?' 라고 물어서 저는 저 조건을 추가해줬는데 카일님은 추가해주시지 않았는데도 제 쿼리와 결과가 같게 나오더라구요.우연히 인천에 있는 트레이너들의 status가 다 Active, Training 이어서 이렇게 된 것인지 아니면 저 조건이 필요가 없는 것인지 궁금합니당! 
