inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bài tập SQL cho phân tích dữ liệu (Advent of SQL 2024)

Ngày 5. Tìm dữ liệu không chứa dấu gạch dưới (_) (Lớp nhập môn Tuần 1)

게임을 10개 이상 발매한 게임 배급사 찾기

Đã giải quyết

84

xogh45675010

11 câu hỏi đã được viết

0

WITH STAT AS(
  SELECT publisher_id, name
  FROM games
  GROUP BY publisher_id, name
  HAVING COUNT(*) >=10
)

SELECT A.name
FROM STAT AS A
JOIN companies AS B
ON A.publisher_id = B.company_id

mysql로 이렇게 작성하니까 답이 하나만 나오는데, 강사님이 작성한 코드

SELECT name
FROM(
  SELECT publisher_id, COUNT(*) AS CNT
  FROM games
  GROUP BY publisher_id
  HAVING CNT>= 10
) AS A
JOIN companies AS B
ON A.publisher_id = B.company_id

이것과 차이가 뭔지 궁금합니다

sql mysql postgresql sqlite

Câu trả lời 2

1

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

태호님이 작성하신 SQL 쿼리와 강사님이 작성한 쿼리의 차이에 대해 설명드리겠습니다.

태호님의 쿼리에서는 games 테이블에서 publisher_idname을 선택하고, COUNT(*) >= 10 조건으로 그룹화한 후, 결과를 STAT이라는 CTE에 저장하고 있습니다. 여기서 문제는 name을 그룹화 기준으로 포함했다는 점입니다. 게임마다 name(게임 이름)이 다를 경우, 적절한 그룹화가 이루어지지 않아 예상과 다른 결과가 나타날 수 있습니다.

강사님이 작성한 쿼리에서는 publisher_id와 그에 따른 게임 개수만을 기준으로 그룹화하였습니다. 그런 다음 결과를 사용하는 서브쿼리 내에서 COUNT(*)(별칭 CNT)를 체크하고, 조건에 맞는 publisher_idcompanies 테이블과 조인하여 적절한 결과를 내고 있습니다.

결론적으로, 두 쿼리의 차이는 태호님 쿼리에 추가된 name 필드로 인해 그룹의 기준이 달라져 있던 것입니다. 강사님의 방식대로 publisher_id 만을 기준으로 그룹화하게 되면 필요한 것을 정확하게 추출할 수 있습니다.

강사님의 쿼리가 다음과 같은 이유로 올바르게 동작합니다:
https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#query-by-example.introduction

더 도움이 필요하신 경우, 언제든지 질문 남겨주세요.

0

jaemin

아래 AI 인턴의 답변대로 STAT CTE 안에서 GROUP BY publish_id, name 이렇게 두 컬럼으로 그룹핑을 한 부분이, 정답 쿼리의 GROUP BY publish_id 와 상이합니다.

twitterdb 연결이 안돼요

1

24

2

Kafka Cluster 구성도 질문

0

14

1

아주 작은 정오표 전달드립니다.

0

35

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

35

1

실제로 작은 기업에서 기획 롤

1

22

1

함수기반 인덱스

0

29

2

날짜 인덱스관련 질문

0

24

1

복합인덱스 확인법

0

21

0

이제 인프런에서 강의 더 안산다. 후져....

0

40

1

order_product 까마귀발

0

40

2

소스코드 어디서 다운받아요?

0

52

5

답을언제쯤받아볼수있나요

0

47

2

공통 코드 , 계층 구조 질문

1

34

1

평균값 구하기

0

72

2

[Day23] 정답 데이터와 동일함에도 오답 처리됩니다.

0

103

3

DAY8 질문

0

64

2

펭귄조사

0

119

2

DAY9 질문

0

121

2

코테 합격 전략

0

155

1

SQL (입문, 실전, 마스터) 빨리 듣는 방법

0

181

1

SQL 치트 시트 (실전)(마스터) 도 추가 요청합니다~

0

136

2

Day 6 질문

0

120

2

Day4. COUNT(*) 만해도 충분한 이유

0

134

1

테스트 케이스를 통과하지 못했습니다.

0

159

1