inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

아

해결됨

실습으로 손에 잡히는 SQLD(2과목)

강사님이 도움 주셔서 잘 해결했습니다

  • sql
  • oracle
  • mssql
  • SQLD
Levi 댓글 2 좋아요 0 조회수 286

코드 에러 질문 드립니다

미해결

실습으로 손에 잡히는 SQLD(2과목)

Table not found라고 뜹니다 혹시 어떻게 해야 되는지 궁금합니다

  • sql
  • oracle
  • mssql
  • SQLD
happyblue0613 댓글 1 좋아요 0 조회수 158

디스코드 접속 관련

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

질문을 남겨주실 때 아래 부분을 같이 남겨주시면 더 빠르게 상황을 파악하고 답변드릴 수 있어요 🙂 어떤 강의를 들으면서 발생했나요? BigQuery 활용편 어떤 문제가 생겼나요? 디스코드 접속 불가 어떤 시도를 해보셨나요? 강의 중 제공되는 링크로 디스코드 접속시 무한 로딩 발생 어떤 쿼리를 사용했나요? - 환경이 어떻게 되나요?(윈도우, 맥 중 택1, 크롬 같은 웹브라우저 환경) 윈도우

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
inf academy 댓글 1 좋아요 0 조회수 253

특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

안녕하세요, 좋은 강의 감사합니다. 제공해 주신 쿼리에 대해 질문이 있는데요, 제 생각에는 아래 쿼리가 특정 부서에서 최대 연봉을 가진 사용자를 조회하는게 아닌, 전체 부서에서 최대 연봉이 x 라고 하면, 세 부서에서 그 값이 있으면 출력하는 문인것 같은데, 제가 어느 부분에서 헷갈린 건지 알려주시면 감사하겠습니다. SELECT * FROM users WHERE salary = (SELECT MAX(salary) FROM users) AND department IN ('Sales', 'Marketing', 'IT'); SELECT MAX(salary) FROM users 는 users 테이블의 최대 salary 를 가져오는것이고, 괄호 밖의 department In (...) 은 부서 세개, 그리고 salary = (SELECT MAX ...) 와 함께 저 salary 에 해당 하는 users 가져오는 것이 아닌가요? 제가 sql 초보라 양해 해주시면 감사하겠습니다 ...

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
광전사 댓글 1 좋아요 4 조회수 287

created_at 에 index 거는것과 지속적인 데이터 증가

해결됨

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

안녕하세요, 좋은 강의 감사합니다. created_at 에 index 를 걸어서 order by 와 같은 문제를 해결하는 것을 보았는데요, 데이터가 지속적으로 증가하고 밀리초 단위로 들어오는 created_at 이 있다면, 이것들을 모두 다 인덱스로 걸어도 괜찮은건가요?? 데이터가 계속 커지면 어떻게 처리하나요??

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
광전사 댓글 2 좋아요 0 조회수 495

WHERE A OR B 에서 인덱스 걸기

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

안녕하세요, 좋은 강의 제공해 주셔서 감사합니다. [실습] WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기 강의 에서 질문이 있습니다. 만일 created_at 과 department 가 AND 가 아닌 OR 조건이 주어지면, 데이터 엑세스가 더 많은것에 인덱스를 거는것이 좋을까요?? SELECT * FROM users WHERE created_at >= DATE_SUB(NOW(), INTERVAL 3 DAY) OR department = 'Sales' -- AND 대신 OR ORDER BY salary LIMIT 100;

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
광전사 댓글 2 좋아요 0 조회수 432

질문이있습니다.

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

제가 선생님 강의를보고 테이블에 천만개의 데이터를 넣고 인덱스를 테스트하고있었는데요, 2가지 질문이 생겼습니다. 질문 다음과 같이 익스플레인 에널라이즈를 하면 소요시간이 약 704ms 으로 나옵니다. 그런데 익스플레인 에널라이즈만 제거하고 다시 셀렉트를 하면 소요시간이 1.494로 증가하는데 단순 조회 쿼리와 익스플레인 에널라이즈 쿼리가 서로 다르게 동작해서 그런건가요? 분석때문에 에널라이즈쪽이 더 오래걸릴까 싶었는데 오히려 반대라서 왜 이런현상이 발생하는지 궁금합니다. -> Filter: ((reservation.userId = 389788) or (reservation.seatId = 50)) (cost=11192 rows=10272) (actual time=2.33..678 rows=10271 loops=1) -> Deduplicate rows sorted by row ID (cost=11192 rows=10272) (actual time=2.3..676 rows=10271 loops=1) -> Index range scan on reservation using idx_user over (userId = 389788) (cost=1.11 rows=1) (actual time=0.115..0.115 rows=0 loops=1) -> Index range scan on reservation using idx_seat over (seatId = 50) (cost=1038 rows=10271) (actual time=0.0497..2.77 rows=10271 loops=1) 질문 제가 다음과 같은 쿼리에 인덱스를 걸며 테스트해보니 복합인덱스 ( userId,seatId or reverse ) 는 전혀 인덱스를 활용하지않고 단일 인덱스를 각각 지정했을 경우에만 아래와같이 인덱스를 병합해서 사용하더라구요. 이렇게 속도를 절반으로 떨어뜨렸는데 아무래도 데이터가 천만개라 그런가 여전히 1초 이상의 시간이 소요되어서 선생님이 보셨을때 여기서 더 개선해볼 방법이 있는지 궁금합니다. where쪽을 건드려 보자니 둘중 하나라도 충족되면 가져와야하는 상황이라면 or 말고 다른건 떠오르질않았습니다. (에널라이즈는 시간이 1초 미만으로 나오지만 실제로 쿼리 돌려보면 소요시간 1.4초 이상으로 찍힙니다. ) CREATE INDEX idx_user ON reservation_entity(userId); CREATE INDEX idx_seat ON reservation_entity(seatId); SELECT `reservation`.`createdAt` AS `reservation_createdAt`, `reservation`.`updatedAt` AS `reservation_updatedAt`, `reservation`.`deletedAt` AS `reservation_deletedAt`, `reservation`.`id` AS `reservation_id`, `reservation`.`userId` AS `reservation_userId`, `reservation`.`concertId` AS `reservation_concertId`, `reservation`.`seatId` AS `reservation_seatId`, `reservation`.`status` AS `reservation_status`, `reservation`.`price` AS `reservation_price`, `reservation`.`concertName` AS `reservation_concertName`, `reservation`.`seatNumber` AS `reservation_seatNumber`, `reservation`.`openAt` AS `reservation_openAt`, `reservation`.`closeAt` AS `reservation_closeAt` FROM `reservation_entity` `reservation` WHERE `reservation`.`userId` = 389788 OR `reservation`.`seatId` = 50; -> Filter: ((reservation.userId = 389788) or (reservation.seatId = 50)) (cost=11192 rows=10272) (actual time=2.33..678 rows=10271 loops=1) -> Deduplicate rows sorted by row ID (cost=11192 rows=10272) (actual time=2.3..676 rows=10271 loops=1) -> Index range scan on reservation using idx_user over (userId = 389788) (cost=1.11 rows=1) (actual time=0.115..0.115 rows=0 loops=1) -> Index range scan on reservation using idx_seat over (seatId = 50) (cost=1038 rows=10271) (actual time=0.0497..2.77 rows=10271 loops=1)

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
alopp 댓글 1 좋아요 1 조회수 356

강의 화면 출력이 되지 않는 현상

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

강의 화면이 제가 들었던 기록들을 제외하고는 음성만 들리고 영상이 보이지가 않습니다. 혹시 해결방안 있을까요?

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
강민수(Ethan) 댓글 1 좋아요 0 조회수 256

5-6. 2번 연습문제 질문입니다!

해결됨

초보자를 위한 BigQuery(SQL) 입문

안녕하세요. 강의에서는 LEFT JOIN ... ON ... 하고 나서 WHERE type1='Grass'으로 먼저 필터링을 하신 것 같은데요! 아래 처럼 GROUP BY - HAVING으로 해도 결과는 동일한데, GROUP BY 보다 WHERE를 먼저 했을 때 수행 속도 등의 이득이 있는지 궁금합니다! SELECT type1, COUNT(type1) AS pokemon_cnt FROM ( SELECT id, trainer_id, pokemon_id, status FROM `basic.trainer_pokemon` WHERE status IN ('Active', 'Training') ) AS tp LEFT JOIN `basic.pokemon` AS p ON tp.pokemon_id = p.id GROUP BY type1 HAVING type1 = 'Grass'

  • sql
  • bigquery
  • 데이터-리터러시
HTCho1 댓글 1 좋아요 0 조회수 196

설치가 안됩니다.

해결됨

실습으로 손에 잡히는 SQLD(2과목)

(사진)

  • sql
  • oracle
  • mssql
  • SQLD
댓글 1 좋아요 0 조회수 226

kotlin mapping error

해결됨

실전 jOOQ! Type Safe SQL with Java

안녕하세요! 강의 잘 들었습니다 ㅎㅎ 자바 기반으로 강의해주신 내용을 바탕으로 코틀린으로 전환하여 다시금 학습하고 있습니다. 그러던 도중 매핑 과정에서 에러가 발생하는 것을 발견하였는데 이와 관련하여 도움을 요청드리고자 합니다. fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( FILM, FILM_ACTOR, ACTOR ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetchInto(FilmWithActor::class.java) } 코틀린에서 위의 코드처럼 TABLE.fields() 메서드를 사용하지 않으면 정상적으로 동작하지만, fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( DSL.row(*FILM.fields()), DSL.row(*FILM_ACTOR.fields()), DSL.row(*ACTOR.fields()) ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetchInto(FilmWithActor::class.java) } 자바와 같이 TABLE.fields()를 사용하였을 때는 아래와 같은 에러가 발생하였습니다. Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method com.example.jooq.film.FilmWithActor.<init>, parameter film at com.example.jooq.film.FilmWithActor.<init>(FilmWithActor.kt) 매핑에 문제가 있는 것 같아 아래와 같이 코드를 수정하였더니 정상 동작하였습니다. fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( *FILM.fields(), *FILM_ACTOR.fields(), *ACTOR.fields() ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetch() .map { record -> FilmWithActor( film = record.into(FILM).into(Film::class.java), filmActor = record.into(FILM_ACTOR).into(FilmActor::class.java), actor = record.into(ACTOR).into(Actor::class.java) ) } } DTO 클래스는 아래와 같습니다. data class FilmWithActor( val film: Film, val filmActor: FilmActor, val actor: Actor, ) { val filmId: Long get() = this.film.filmId!! val title: String get() = this.film.title val actorFullName: String get() = "${this.actor.firstName} ${this.actor.lastName}" } Film, FilmActor, Actor는 Flyway 기반으로 생성된 pojo 클래스들입니다. implicitPathJoin, explicitPathJoin 시에도 동일한 문제가 발생하여 문의드리고자 합니다 ㅜ 위의 방법처럼 매핑할 수 있지만, 가독성이 떨어지는 것 같아 혹시 다른 방법이 있는지 궁금합니다. 또한 혹시 제가 놓친 부분이 있다면 알려주시면 감사합니다!

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
clllickme 댓글 4 좋아요 0 조회수 595

테이블에 기본키가 없을때

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

강의를 듣다 궁금한 점이 생겨서 글을 남김니다. 보통 테이블을 생성할때 당연하게 pk를 지정해 주었는데 pk가 없는 테이블도 생성을 하나요? 생성은 되는것 같은데 똑같이 테스트를 해보니 따로 정렬한는 기준이 없어서 그런지 id 7번을 2번으로 바꿔도 들어온 순서대로 위치가 맨 마지막에 있는것을 확인했습니다. pk가 없는 테이블도 있는지 있으면 성능이라던지 차이점이 뭔지 궁금합니다.

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
나뭇잎 댓글 1 좋아요 0 조회수 431

질문있어요!!!

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

인덱스를 생성할때, 오름차순 - 내림차순도 설정할수있는데, 날짜 기준으로 '최신 날짜 기준'으로 자주 조회하는 쿼리일 때, 인덱스를 날짜 기준으로 내림차순으로 만들면 쿼리에 더 효과가 있는 걸까요? 아니면 정렬 설정 상관없이 '옵티마이저'가 알아서 판단해서 조회를 하는 건가요?? 그리고 강의 너무 유익하게 듣고있습니다. 늘 좋은 강의 감사합니다

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
하동원 댓글 1 좋아요 1 조회수 233

ddl_create sql 문으로 데이터 세팅

미해결

실습으로 손에 잡히는 SQLD(2과목)

intersect가 나오는 부분을 영상으로만 봐도 이해할 수 있지만 공유해주신 sql로 테이블을 생성하고 insert를 하면 course 테이블에 title 컬럼이 없고 course_name과 department_id 컬럼이 있습니다. 영상만 볼 때는 상관없지만 직접 따라해 볼 때 조금 헷갈릴 수도 있을 것 같습니다.

  • sql
  • oracle
  • mssql
  • SQLD
박윤상 댓글 1 좋아요 1 조회수 249

강의 중간에 쿼리 복사 붙여넣기 해야하는 부분들

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

안녕하세요! 기본편에 이어 활용편을 열심히 듣고 있는 학생입니다. 제 브라우저나 pc의 문제인지는 모르겠지만, 강의 중간에 쿼리를 복사 붙여넣기 해야 되는 부분들이 있을 때, 인프런 플레이어에서 문자인식 후 복사하는 기능을 제공하지 않습니다.. 그래서 따로 캡쳐를 따서 문자를 인식한 후, 복사 붙여넣기를 해야 하는데요. 이럴 때도 정확도가 좋지 않아서 일일이 수기로 다 수정을 해야합니다. 혹시 강의 중간에 복사 붙여넣어 사용해야할 쿼리가 있다면 혹시 해당 강의에 강의 자료 부분에 텍스트로 올려놔주실 수 있을까요? 그렇다면 많은 학생들이 쿼리를 쉽게 복사, 붙여넣어 강의를 빠르게 들을 수 있을 것 같습니다. 항상 열심히 강의 해주시고 답변해주셔서 감사합니다!

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
5 댓글 2 좋아요 0 조회수 284

70번, 71번

해결됨

실습으로 손에 잡히는 SQLD(2과목)

영상이 없습니다!

  • sql
  • oracle
  • mssql
  • SQLD
박윤상 댓글 2 좋아요 1 조회수 275

battle 테이블 오류

해결됨

초보자를 위한 BigQuery(SQL) 입문

battle 파일을 반디집으로 압축 풀기하고 업로드 했는데 다음과 같은 오류가 뜹니다 어떻게 해야할까요?

  • sql
  • bigquery
  • 데이터-리터러시
kristinyoo1219 댓글 1 좋아요 0 조회수 279

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

리트코드 177번 function 풀이를 보면서 진행하는데, 서브쿼리에 작성된 limit에 -1를 인자로 넣어서 추가 검증하다보니 제출이 되지 않는 듯 합니다. 조건을 약간 수정하는 방식으로 컨텐츠 수정이 필요할 듯 합니다.

  • sql
  • function
  • casewhen
  • limit
starbee 댓글 2 좋아요 0 조회수 251

2-6. 연습문제 12번

해결됨

초보자를 위한 BigQuery(SQL) 입문

연습문제 풀던 중에 궁금한 게 생겨서 여쭤봅니다! 12번에서 단일 포켓몬 중 많은 타입 1을 구할 때, 지금 데이터에선 type2가 null인 경우만 있지만, type1도 null인 경우도 있다고 가정하면, where (type2 is null) or (type1 is null) 처럼 or 조건으로 표현하면 될까요?

  • sql
  • bigquery
  • 데이터-리터러시
박서현 댓글 1 좋아요 0 조회수 159

인기 태그

인프런 TOP Writers

주간 인기글