현재 버전

오라클 SQL group by 질문 있습니다.



안녕하세요 오라클 SQL 공부 하고 있는 학생입니다.

group by 부분을 공부중인데 이해가 안가는 부분이 있어 질문 올려봅니다


먼저 order_items 이라는 테이블에 주문 id , 제품 id, 제품의 수량이 적힌 order_id, item_id,quantity 칼럼이 있습니다.


SELECT order_id, sum(quantity)

FROM order_items

GROUP BY order_id

ORDER BY order_Id;

이렇게 한다면 같은 order_id를 같는것끼리의 quantity의 합을 구해줍니다


SELECT order_id, item_id, sum(quantity)

FROM order_items

GROUP BY order_id,item_id

ORDER BY order_Id,item_id;

이렇게 하면 item_id가 같은것 끼리 quantity의 합을 구해줍니다.


여기서 이해가 안되는 부분이 order_id 를 그룹화한거랑 order_id,item_id가 그룹화 한것의 결과가 왜 다르게 나오는지를 잘모르겠습니다.

정확하게는   order_id,item_id를 그룹화 하는데 왜 item_id 기준으로 집계함수가 연산되는지를 잘 모르겠습니다.

order_id,item_id 를 그룹화하면 order_id가 먼저 그룹화되고 item_id 가 그룹화 되는것인지 아니면 따로따로 그룹화가 이뤄지는건지 머릿속에 그려지지가 않습니다.

다른사람들은 당연하게 이해하는걸 전 잘 이해를 못하겠네요ㅠㅠ

긴글 읽어주셔서 감사합니다




수정 이력

2020-08-13 10:29:59 에 아래 내용에서 변경 됨 #1

안녕하세요 오라클 SQL 공부 하고 있는 학생입니다.

group by 부분을 공부중인데 이해가 안가는 부분이 있어 질문 올려봅니다


먼저 order_items 이라는 테이블에 주문 id , 제품 id, 제품의 수량이 적힌 order_id, item_id,quantity 칼럼이 있습니다.


SELECT order_id, sum(quantity)

FROM order_items

GROUP BY order_id

ORDER BY order_Id;

이렇게 한다면 같은 order_id를 같는것끼리의 quantity의 합을 구해줍니다


SELECT order_id, item_id, sum(quantity)

FROM order_items

GROUP BY order_id,item_id

ORDER BY order_Id,item_id;

이렇게 하면 item_id가 같은것 끼리 quantity의 합을 구해줍니다.


여기서 이해가 안되는 부분이 order_id 를 그룹화한거랑 order_id,item_id가 그룹화 한것의 결과가 왜 다르게 나오는지를 잘모르겠습니다. 

order_id,item_id 를 그룹화하면 order_id가 먼저 그룹화되고 item_id 가 그룹화 되는것인지 아니면 따로따로 그룹화가 이뤄지는건지 머릿속에 그려지지가 않습니다.

다른사람들은 당연하게 이해하는걸 전 잘 이해를 못하겠네요ㅠㅠ

긴글 읽어주셔서 감사합니다