Group by 사용 시 SELECT 절에 언급 관련
1058
작성한 질문수 2
안녕하세요.
SQL 초급에서 GROUP BY 를 사용할 때는, 그룹화의 기준이 되는 컬럼을 SELECT 구문에 반드시 적으라고 배웠던 것으로 기억합니다.
그런데 이 문제에서는 GROUP BY 에 rn을 적었지만 SELECT 에 rn을 지운 상태로 결과물을 출력하게 되더라구요.
그래서 GROUP BY에 사용한 컬럼을 어떤 경우에는 반드시 적어야 하고, 또 어떤 경우에는 적지 않아도 괜찮은지 궁금합니다.
그럼 편하신 때에 답변 부탁드리겠습니다.
감사합니다!
답변 1
1
GROUP BY 를 하는 이유는 어떤 기준(컬럼)으로 데이터를 나눠서, 각 항목별로 집계를 하기 위함입니다.
그런데 이 기준이 눈에 보이지 않는다면 집계된 데이터가 무엇에 해당하는 것인지 알기가 어렵습니다.
그렇기 때문에 기준이 되는 컬럼도 SELECT 절에 기입함으로써 결과물에 출력되도록 하는 경우가 일반적입니다.
예를 들어, 과일 종류별로(GROUP BY 과일) 매출 총합을 구했다면
apple | 300
orange | 200
strawberry | 100
이런 식의 결과물이 나와야 할 텐데요.
만약 SELECT 절에 '과일' 컬럼을 넣지 않아 위 예시의 첫번째 컬럼에 해당하는 과일 이름 값이 모두 제외된다면 매출이 300달러인 과일이 사과인지, 딸기인지 알 수가 없겠죠.
다만, SELECT 절에 포함되지 않는다고 해서 쿼리 자체가 작동하지 않는 것은 아닙니다.
이 문제에서는 피봇 테이블 형태를 만드는 과정을 위해 GROUP BY를 사용했고, output에 랭킹에 해당하는 컬럼이 포함되지 않기를 요구했습니다.
이처럼 원하는 데이터 형태에 맞게 쿼리를 작성하시면 되겠습니다.
강의기간 연장문의
0
107
2
HackerRank : Weather Observation Station 11 문제풀이
0
122
1
SET4의 3번 자리바꾸기 문제 다른 풀이
0
196
1
set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문
0
275
2
set 1 - 2번 문제풀이
0
267
1
세트2번 Binary Tree Nodes 질문입니다!
0
230
2
고급문제풀이set1 3번 문제
0
254
2
고급문제풀이 3번 INNERJOIN 활용시 오류
0
274
1
회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ
0
324
1
[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?
0
381
1
[Weather 20] 따라 했는데 왜 작동 안해요?
0
281
1
weather-20 왜 작동 안하는건가요?
0
233
1
Ollivander's Inventory 윈도우 함수 min() over
0
319
1
LeetCode 626. Exchange Seats 리트코드 제출 오류
0
510
2
섹션4에 3번 문제풀이 질문
0
386
2
SQL Project Planning 풀이 관련 문의
0
589
2
섹션 1번 4번문제 풀이
1
289
1
섹션1 2번 문제풀이 강의
0
307
1
set2 - 1 같게 작성했는데 답이 이상합니다.
0
289
1
max함수를 써서 풀지는 못하나요?
0
306
1
윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?
0
265
1
(Hacker Rank)Binary Tree 문제 질문
0
329
1
쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.
0
297
1
이런 풀이는 왜 안되는지 궁금해요
0
279
1





