• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

group by로 값 출력할 때

22.07.02 14:40 작성 조회수 484

1

안녕하세요, group by 관련해서 2개의 질문드립니다!

1. 

group by를 사용하지 않고 전체 값을 출력했을 때는 다음과 같이 SupplierID가 1인 케이스가 3건이고 각각의 ProductName도 노출이 되는데요.

group by SupplierID를 이용해서 그룹으로 묶으면 원래 SupplierID가 1이었던 케이스들은 1개만 남고 사라지더라구요. group by를 활용하게 되면 묶이는 케이스의 각 값들은 볼 수 없는 걸까요?

COUNT하거나 할 때는 상관 없을 것 같은데 원래 이렇게  하나의 값만 남아지는지 궁금합니다!

 

2.

order by에 두 개의 값을 넣어 정렬시키면 1번 값을 기준으로 정렬하되 1번 값으로 정렬이 안되면 2번 값을 기준으로 정렬로 이해했습니다.

group by SupplierID, CategoryID처럼 group by에 여러 값을 활용해서 묶을 때는 SupplierID와 CategoryID이 같은 경우로만 묶이는 건지 궁금합니다!

답변 1

답변을 작성해보세요.

0

1. GROUP BY는 주로 집계 함수(COUNT, SUM, MIN, MAX, AVG, ...)와 함께 사용합니다.
그룹별로 데이터를 나누고 각 그룹 내에서 집계를 한 값을 구하는 것이죠.
그런데 GROUP BY를 하고 집계 함수는 쓰지 않으면 지금 확인하신 것처럼 각 그룹의 첫 번째 row만을 출력하게 됩니다.

 

2. GROUP BY 절에 쓴 모든 컬럼이 그룹을 나누는 기준으로 사용됩니다.
만약 GROUP BY SupplierID를 하고 SUM(Price)를 구한다면 SupplierID = 1인 모든 row의 price의 합계 값이 나옵니다.
GROUP BY SupplierID, ProductID 를 했을 경우에는 SupplierID = 1로 동일하더라도, 
SupplierID =1 & ProductID = 1 인 row들과, SupplierID =1 & ProductID = 2 인 row들을 나눠서 각각 집계합니다.