inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Real MySQL 시즌 1 - Part 1

Ep.12 SQL 문장의 가독성 향상

12강 FULL GROUP BY

해결된 질문

135

조혜륜

작성한 질문수 4

0

안녕하세요.

8:01에서 FULL GROUP BY 형태에 대해 설명해 주시고 있습니다. 그 중 오른쪽의 FULL GROUP BY의 쿼리에 질문이 있습니다.

 

GROUP BY로 fd1을 명시했으니 적절한 쿼리는

SELECT fd1, SUM(fd1), COUNT(*)
FROM tab
GROUP BY fd1

이 되어야 하지 않을까요?

*변경 부분: SUM(fd2) -> SUM(fd1)

mysql dbms/rdbms backend query-tuning mysql-query

답변 2

0

이성욱

조혜륜님, 안녕하세요.

GROUP BY 절에 명시되지 않은 컬럼에 대해서 집합 함수(Aggregation func)을 사용하면 FULL-GROUPBY 규칙에 위배되지 않습니다. 그래서 ppt에서 SUM 함수를 사용했기 때문에, 이는 문법상 문제 없는 쿼리가 되는 것입니다.

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 조혜륜님.

질문 주신 내용에 대해 답변드리겠습니다. FULL GROUP BY의 의미는 SQL 쿼리에서 GROUP BY에 지정되지 않은 열들에 대해서는 집계 함수와 함께 사용해야 한다는 것을 의미합니다. 쿼리에서 GROUP BY에 명시된 열이 아닌 다른 열을 SELECT 절에서 사용하려면, 반드시 집계 함수 내에서 사용하거나, SQL_MODE에서 ONLY_FULL_GROUP_BY 모드를 사용하지 않도록 설정해야 합니다.

주신 예제 쿼리에서 SUM(fd2)SUM(fd1)으로 변경해야 한다고 언급하셨는데, 사실 SELECT 절에는 GROUP BY에 의해 그룹화된 열이거나, 집계 함수(SUM, COUNT 등)에 사용되는 열만 포함되어야 원래 SQL 표준을 충족하게 됩니다. 따라서 SUM(fd1), COUNT(*)와 같은 집계 함수를 사용하여 fd1에 의해 그룹화된 결과를 나타낼 수 있습니다.

SELECT fd1, SUM(fd1), COUNT(*)
FROM tab
GROUP BY fd1

이 쿼리는 fd1에 대한 그룹화된 결과를 의미하며, 각 fd1 값에 대한 fd1 값의 합과 모든 열의 개수를 반환합니다.

관련 게시물: MySQL FULL GROUP BY 문제 해결을 참고하시면 FULL GROUP BY와 관련된 더 많은 정보와 해결 방법에 대해 알아보실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Commit 응답받기 전 네트워크 문제가 발생하면

1

64

1

14분44초에 쿼리 질문드립니다.

0

73

2

ep12. (2) LEFT JOIN 사용 방법 준수 - 오타 질문

0

75

2

ep.12 count(*) 질문

0

67

2

레코드 수정시 저장공간이 부족하면

0

81

2

복합 index 문의

0

87

2

강의

0

82

1

LEFT JOIN 시 드라이빙 테이블을 왜 ALL로 읽나요?

0

107

2

GAP 락에 대한 질문 드립니닷..!

0

195

1

ORDER BY가 필요한 이유

0

177

2

[오타 제보] 선행 데이터를 기반으로 한 데이터 분석

0

167

1

2강. VARCHAR(255) 저장되는 데이터의 길이 정보 질문

0

448

2

LIMIT, OFFSET을 사용하는 것과 범위 기반 방식의 성능 차이

0

319

2

MySQL Where절 내 조건의 순서

0

393

2

1강. delete marking된 데이터의 정리 주기는 어느 정도인가요?

0

238

2

Mysql table avg_row_length

0

144

1

ep11) Prepared Statement에서 질문

0

145

2

7)select for update 강의에서 질문

0

229

2

12강. LEFT JOIN 사용 방법 준수 5:42

0

240

2

6강. Top N 데이터 조회와 관련해 질문있습니다.

0

195

2

5강에서 사례로 언급하신 DETERMINISTIC 예제에 대해 질문있습니다.

0

145

1

deternmistic 질문

0

174

2

1강 CHAR타입에 대해 질문드립니다

0

230

1

EXPLAIN ANALYZE 수행 시 쿼리 실행 계획이 예상과 다릅니다.

0

252

1