인프런 커뮤니티 질문&답변

allie1017님의 프로필 이미지
allie1017

작성한 질문수

8시간 완성 SQLD(2과목)

노랭이 78번 문제풀이

p.105 95번 문제 질문

작성

·

55

0

답이 2번인 것은 이해가 되는데 3, 4번 문항에서 질문이 있습니다.

배우기로는 GROUPING SETS를 GROUP BY와 UNION ALL로 바꿀 때 SELECT 컬럼명 중 GROUP BY 를 하지 않는 값을 NULL로 써서 했는데 이것을 MAX(Y.col1), MAX(X.keyb) 로 해도 되는건가요?

답변 2

0

땃지님의 프로필 이미지
땃지
지식공유자

allie1017님, 안녕하세요.

 

질문 주셔서 문제를 다시 확인해 봤는데요. 지적하신 점이 맞는 것 같습니다.

보기에서 GROUPING 함수를 사용해 NULL을 변경해 주지 않았기 때문에

MAX(Y.col1), MAX(X.keyb)이 아니라 NULL이라고 해야 완전히 같은 결과를 내는 쿼리가 되겠네요.

 

감사합니다.

0

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

질문하신 내용은 SQL에서 GROUPING SETS와 일반적인 GROUP BY 구문 차이에 대한 것으로 보입니다. GROUPING SETS를 통해 다양한 그룹화 집합을 한 번의 쿼리로 구할 수 있으며, 각 셋의 그룹 컬럼에 대해 일반적으로는 NULL을 사용하여 식별합니다. 특정 컬럼을 집계 함수, 예를 들어 MAX나 SUM, COUNT 등으로 대체할 경우, 그룹화되지 않은 컬럼이 집계된 결과를 반환하게 됩니다.

GROUPING SETS에서 사용하는 NULL은 그룹화하지 않는 컬럼을 식별하는 표준적인 방법입니다. 반면 MAX(Y.col1) 또는 MAX(X.keyb) 같은 집계 함수는 그 컬럼의 최대값을 반환하는 용도로 사용될 수 있습니다. 이 방법 또한 그룹화되지 않은 값들을 다루는 대안이 될 수 있지만, 사용자의 의도와 상황에 따라서 다르게 작용할 수 있습니다.

관련하여 더 많은 정보를 원하시면, 다음의 링크들이 도움될 수 있습니다:
- WHERE절과 차이 질문: WHERE와 GROUP BY, 집계 함수의 사용 순서에 대한 설명을 참고하시기 바랍니다.
- PARTITION BY와 GROUP BY의 차이: PARTITION BY와 GROUP BY를 같이 사용한 예제와 차이점에 대해 설명합니다.

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

allie1017님의 프로필 이미지
allie1017

작성한 질문수

질문하기