테스트 사이트 - 개발 중인 베타 버전입니다

group by 로 묶었을때와 안묶었을때... 채택완료

예서제이 3년 전 조회 1,702

안묶었을때

</p>

<p>        select SUBSTRING(wr_29,1,7) as od_date, mb_id, group_concat(wr_32 separator '||') wr_32, group_concat(wr_33 separator '||') wr_33, group_concat(wr_40 separator '||') wr_40, count(*) as cnt

          from {$write_table}

         where SUBSTRING(wr_29,1,7) between '{$stxs11}' and '{$stxs22}'</p>

<p>

결과값

 

 

묶었을때

</p>

<p>        select SUBSTRING(wr_29,1,7) as od_date, mb_id, group_concat(wr_32 separator '||') wr_32, group_concat(wr_33 separator '||') wr_33, group_concat(wr_40 separator '||') wr_40, count(*) as cnt

          from {$write_table}

         where SUBSTRING(wr_29,1,7) between '{$stxs11}' and '{$stxs22}'</p>

<p> group by od_date</p>

<p>

결과값 (mb_id로 묶었을때도 같은 값, 행렬만 다름) 

 

 

결론적으로 맞는 값은 그룹으로 묶었을때 나오는 값이 맞는 값입니다.

 

그룹으로 묶었을때와 묶지 않았을때 값이 차이나는 이유가 무엇을까요?

카운트 값은 동일한데...

구글링을 해서 찾아보고 있는데..

 

결과값이 달라지는 이유를 모르겠습니다.

 

 

그룹으로 묶지 않았을때도 정상적인 값이 나오게 할려면 어떻게 해야 하나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

예서제이

group 으로 안묶었을때

 

 

group 으로 묶었을때

 

두개를 돌렸을때 쿼리결과값이 위처럼 나오네요.

안묶었을때 마지막 값을 보면 15가 나오는데.. 아래의 빨간칸 다음값부터 나오질 않습니다. 

15500부터 나오질 않네요..

 

왜 저런 결과값이 나오는지.. 어떻게 하면 안묶었을때도 묶었을때처럼 값이 나올수 있는지가 궁금합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
두 경우 모두 입금 횟수 합이 299로 같은 것과 비슷한 거죠.

group by 없을 때 결과를 다 이어 붙이면
group by 있을 때 결과랑 같지 않나요?

댓글을 작성하려면 로그인이 필요합니다.

group by가 있을 때 나오는 거하고

없을 때 나오는 것하고 다른 것이 당연한데

이걸 같게 나오게 하고 싶다는 것을 이해 못하겠네요.

query 문 자체만 질문하지 마시고

 

엑셀(표)를 보여 주시고 원하시는 결과를 설명하시고

query문을 질문하시는 것이 좋겠습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

예서제이
3년 전
제가 설명을 잘 못한듯 합니다. 죄송합니다.
똑같은 쿼리문에 하나는 그룹으로 묶고 하나는 안묶었는데
위에 보시는 것처럼(이미지) 쿼리 결과값이 달라서 왜 달라지는지 궁금해서 질문드렸습니다.
엑스엠엘
3년 전
똑같은 쿼리문에 하나는 그룹으로 묶고 하나는 안묶었는데
==
결국은 똑같은 query가 아니라는 거죠.

댓글을 작성하려면 로그인이 필요합니다.

3년 전

총금액이 다르다는 말씀이신가요?

 

쿼리 결과를 엑셀로 따로 만들어서 확인해보시는게 좋겠네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

예서제이
3년 전
쿼리결과값을 확인해보니.. 안묶었을때는 결과값이 중간에 짤려서 나오네요..
백수1995
3년 전
15 이후에 안나오는건 다른문제 같습니다.
일단 서버쪽에서 쿼리 결과가 제대로 나오는지 확인해서
보내는쪽에서 잘랐는지 받는쪽에서 못받았는지 부터 확인해야 겠네요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인