본인은 member_tbl_02(m1라고 부르겠다) money_tbl_02(m2라고 부르겠다) 두개의 테이블을 조인하여 Group by로 출력하고자한다.
우선 m2에서 동일한 custno으로 Group by 해보도록하겠다.
그런데 select * from money_tbl_02로 하면 아래와 같이 오류가 발생한다.
이유는 그룹으로 묶이기 때문에 전체 레코드를 출력할 수 없는 것이다.
그렇기 그룹으로 묶은 custno 부분을 출력하고 각 custno이 몇개 있는지 count로 출력하도록해야 한다.
아래와 같이 말이다.
그럼 이번에는 m1과 m2를 조인해보자
그럼 아래와 같이 조인된 데이터가 출력되는 것을 확인할 수 있다.
여기서 custno과 custno별로 price합계를 구하고자한다.
보다시피 sum(price)되어 아래와 같이 custno와 각 custno 별로 총 얼마의 price가 합해졌는지 확인할 수 있다.
그렇다면 위의 코드를 그대로 두고 select에 custname만 추가해보도록하자
아래와 같이 m1.custname을 select하였으나 group by를 하지않았다.
그런데 아래와 같은 문제가 발생하였다.
이유는 무엇일까?
이유는 custname이 group화되지않았기 때문이다.
즉 아래와 같은식으로되어있기 때문이다.
그러므로 group화하지않았기 때문에 위와 같은 오류가 발생하는 것이며 custname역시 group화를 진행해줘야 한다.
아래와 같이 custname도 group화를 하면 아래와 같이 정상 출력되는 것을 확인할 수 있다.
'[DB]' 카테고리의 다른 글
[DB 개념] SQL문에서 데이터 사용방법(기본) (0) | 2019.12.20 |
---|---|
[DB 개념] 마리아DB insert 구문에서 MAX 사용하기 (0) | 2019.12.10 |
[DB개념] 식별, 비식별관계 (0) | 2019.12.07 |
[오라클] 복합키에 관하여(pk 2개) (0) | 2019.12.06 |
[MySQL 개념] 부속쿼리와 join의 차이 (0) | 2019.11.16 |