묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨초보자를 위한 BigQuery(SQL) 입문
주석처리 -- 빠르게 입력하는 방법(?)
카일님의 강의 잘 듣고 있습니다!2가지 질문이 있습니다!1번 질문) 카일님이 강의를 하시면서 주석처리를 되게 빠르게 실행하시는 것 같으신데, 혹시 팁을 공유해주실 수 있으실까요?-- 를 매번 입력하시는 것인가요?!2번 질문)5-6강의 11분 49초에서 쿼리를 빠르게 주석처리하기 위해서 앞에서 true인 1=1을 넣고, and쓰고 빠르게 주석처리..이 부분이 이해가 안됩니다.. 1=1을 넣는 것과 and에 주석처리를 거는 것과 무슨 연관이 있는 건가요?좋은 강의 늘 감사합니다!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-7 5번 '이후'
카일님~혹시 5번 문제의 '이후'가 사전적으로는 기준이 되는 때도 포함이 되어서 >=로 작성이 되어야 할 것 같은데,강의에서는 >로 작성하셨더라구요.. 혹시 이렇게 작성하신 다른 이유가 있으신지 궁금합니다..!감사합니다 :)
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-7 3번 BETWEEN의 범위
카일님 안녕하세요 :)4-7 3번 문제에서 BETWEEN을 사용해주셨는데mysql에서의 BETWEEN 범위는 이상, 이하라고 하는데 혹시 bigquery는 그 포함 관계가 다른걸까요?301에서 500 사이면 BETWEEN 301 AND 500 이어야 할 것 같은데 300으로 작성하신 이유가 궁금합니다.나름대로 검증해보려고 total=301인 데이터를 뽑아보려했는데 pokemon 데이터에는 포함 안되어 있더라구요..ㅎㅎㅠ그리고 제가 3일 정도 뒤에 갑작스레 SQL 코딩테스트를 보게 되어 벼락치기를 해야하는 상황인데카일님의 SQL 개념+문풀 JOIN까지 듣고 프로그래머스 고득점 Kit로 문풀을 하면될지..시간이 넘 촉박해서 다 할 수 있을지는 모르겠는데 혹시 좀더 효율적인 공부 방향이나 팁이 있다면 추천 부탁드려도 될까요?ㅠㅠ항상 선한 영향력 감사합니다!!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
안녕하세요
강의 너무 잘 듣고 있습니다.혹시 활용편은 언제쯤 출시될 예정일까요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
battle 미리보기 업로드 오류
안녕하세요 카일님~battle 데이터를 업로드하고 말씀해주신 설정을 똑같이 적용했는데미리보기에서 데이터가 보이지 않고, 쿼리의 FROM으로 불러와도 '표시할 데이터가 없습니다'라고 뜹니다혹시 관련해서 도움을 구할 수 있을까요?ㅠㅠ그리고 강의 너무너무 잘 보고 있습니다.. 최곱니다 너무 감사드려요ㅎㅎ (해결 완료)아래 게시글에서 '빌링 어카운트(결제 계좌)' 연결 후에 문제 해결되셨다고 하셨습니다.저는 '엇? 나는 지금 결제 계좌 연결되어있는데..?'라고 잠시 생각했으나다시 되짚어보니 제가 basic 데이터셋을 초반에 만들고, 그 이후에 결제 계좌를 연결했을 수도 있을 것 같아요그래서 저는 basic2 데이터셋을 새로 생성해서 battle 테이블을 생성해보니 정상적으로 진행되는 것을 확인했습니다!요약하면 '결제 계좌 연결 => 데이터셋(basic) 생성 => battle 테이블 생성' 순서가 반드시 지켜져야오류없이 진행되는 것 같습니다ㅠㅠ 원인을 알게 되어 정말 다행이고, 공유해주셔서 감사합니다 :)https://www.inflearn.com/questions/1250442/battle-%ED%85%8C%EC%9D%B4%EB%B8%94-%ED%98%95%EC%84%B1%ED%95%A0-%EB%95%8C-%EC%A0%9C%EA%B0%80-%EC%96%B4%EB%96%A4-%EC%8B%A4%EC%88%98%EB%A5%BC-%ED%96%88%EC%9D%84%EA%B9%8C%EC%9A%94
-
해결됨초보자를 위한 BigQuery(SQL) 입문
파일 업로드 오류와 관련해서 재질문 합니다.
질문 드렸던 이전 게시글▶ https://www.inflearn.com/questions/1229720/pokemon-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84-%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0%EC%9E%90-%ED%95%98%EB%8A%94%EB%8D%B0-%EB%9C%A8%EB%8A%94-%EC%98%A4%EB%A5%98?re_comment_id=349352 =구글 드라이브에 파일을 업로드 한 후 공유 드립니다.https://drive.google.com/file/d/1Z8y2eJSlwfYEexaxyAan7Rt3xPrJtznE/view?usp=sharing
-
해결됨초보자를 위한 BigQuery(SQL) 입문
Espanso 실행 문제 해결
안녕하세요. 수업 유익하게 잘 듣고 있습니다! Espanso를 다운받아서 설정해봤는데요! 텍스트 편집기에서 수정까지 되었고, espanso 프로그램에서 open search bar 를 눌러봤을 때 첨부드린 이미지처럼 :sql 이 잘 들어가 있습니다. 그런데 :sql 과 같은 trigger 단어를 입력해도 변하지 않아서 어떤 다른 해결 방법이 있을지 문의드립니다.혹시 espanso의 설정 수정까지는 잘 되었으나, espanso가 어떤 권한 문제로 적용이 안될 수도 있나요? 추가로 시도해볼만한 방법이 있다면 안내 부탁드립니다. 감사합니다!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
활용편 급합니다.....
활용편 언제 나오나요급합니다.... 빨리 내놓으십쇼..유료로 내주셔도 긁겠습니다
-
해결됨초보자를 위한 BigQuery(SQL) 입문
오류
다음과 같이 실행했는데 오류가 뜨는데, 이유가 무엇일까요? SELECT * IF(speed >= 70, "빠름", "느림") AS Speed_Category FROM `inflearn-bigquery-practice.basic.pokemon` Syntax error: Expected end of input but got keyword IF at [3:3]
-
해결됨초보자를 위한 BigQuery(SQL) 입문
총 정리 문제 풀이 5번에 관해 질문
안녕하세요.총 정리 문제 풀이 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 시작도 못한 분들 드루와요
빅쿼리 테이블 만들기 오류
안녕하세요. 현재 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회로 줄어버리지 않을까 생각되는데, 잘못된 곳이 있다면 짚어주셨으면 합니다. 미리 감사합니다.
-
해결됨초보자를 위한 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 를 윈도우 버전으로 다운로드해서 설치하려고하는데 지속적으로 하기 에러가 나고있습니다. 혹시 제가 뭔가 잘못설치한건지 확인 한번 부탁드립니다!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
WITH 구문
1. WITH 사용하지 않고 FROM으로 묶은 후 쿼리 작성 이어나가기2. WITH 사용하기안녕하세요. 위의 두 경우 모두 쿼리 결과는 동일하게 나오는데, WITH를 사용하는 정확한 이유가 오로지 가독성을 위한 것인지, 용량에도 차이가 생기는 것인지 궁금해 질문드립니다.(개인적으로는 문제를 풀 때 바로 묶는 것이 더 편하기 때문에 여쭤봅니다.!)
-
해결됨초보자를 위한 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 이어서 이렇게 된 것인지 아니면 저 조건이 필요가 없는 것인지 궁금합니당!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
5-6 의 Join 문제 2 해설이 일부 이해가 되지 않습니다
안녕하세요. 5-6 JOIN 연습문제 2번 중, 18:30 쯤에서 group by type1 을 하셨는데 여기 group by pokemon_Cnt (= tp.id) 여야 하지 않는지요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-5 연습문제 4번
안녕하세요. 4-5 연습문제 4번 서브쿼리 부분에서 질문이 있습니다. 서브쿼리에 꼭 * 이나 id를 써줘야 실행이 되는 이유는 무엇인가요??처음에는 서브쿼리>select에서 카일님 풀이처럼 *를 안 해주고 실행했더니 Unrecognized name: id라는 오류가 떴습니다. 구글링을 통해 알아보니, 서브쿼리에 id를 안 썼는데 바깥에 COUNT(DISTINCT id) as battle_cnt 를 써줘서 오류가 떴다고 했습니다. 왜 써줘야 하는지 알 수 있을까요??