쿼리문에서 group by로 묶을때요~~

쿼리문에서 group by로 묶을때요~~

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

쿼리문에서 group by로 묶을때요~~

본문

$row = sql_query(" select AVG(wr_1) as avg, date  from $aaa_table mb_id='$member[mb_id] group by wr_datetime ");

 

상기와 같이 날짜로 그룹바이 해서 묶어서 리스트로 출력할때요~~

sum은 더해서 나오는거 알겠는데요..

date는 그룹에서 최고 마지막껄가져오나요? 아님 최초의 것을 가져오나요?

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 6

채택됨

잉끼s님의 답변

select AVG(wr_1) as avg,  substr(wr_datetime , 1, 10) date  from $aaa_table mb_id='$member[mb_id] group by date 

 

이렇게 하시면 될 것 같습니다.

주소복사
채택됨
답변의 댓글

유찬아빠님의 답변

wr_datetime 은 년월일시분초 까지 기록됩니다.

그러므로 그룹으로 묶으면 같은 시각의 초를 집계하는데 이건 효율적이지도 않지만 원하는 결과를 얻지 못 하십니다.

주소복사
답변의 댓글

유찬아빠님의 답변

그리고 쿼리에 where 절이 없네요?
같은 날짜까지만 그룹화 하시려면

where mb_id = '$member[mb_id]' 하시고

group by substring(wr_datetime , 1, 10) 하시면 같은날짜 까지만 그룹화 합니다.

주소복사
답변의 댓글

잉끼s님의 답변

 group by wr_datetime 를 group by date 로 바꿔보세요.

유찬아빠님 말씀대로 wr_datetime는 시간분초 까지 들어가서 group by로 묶을 수 없습니다.

주소복사
답변의 댓글

플래토님의 답변

위와 같이 하시면

초단위로 묶입니다.

 

group by date(wr_datetime) 

으로 하시면 일별로 묶입니다.

 

date라는 컬럼이 있다면

date로 묶으시던지

없다면

컬럼에서도

 

select .... , date(wr_datetime) as date

로 표기하셔야죠

주소복사
답변의 댓글

소수리꼬님의 답변

답변주시분 대단히 감사드립니다.

질문에 혼동이 잇었나 보네요..

date는 임의로 그냥 쓰다가 넣은건데요..ㅠㅠ

단지 궁금한건 그룹으로 묶엇을때 그 그룹안의 일정 필드의 값들이 달랐을때

$result = sql_query(" select AVG(wr_1) as avg, aaa  from $aaa_table where mb_id='$member[mb_id] group by wr_datetime ");
 
while($row=sql_fetch_array($result)){  
  echo $row['avg'];
  echo $row['aaa'];
}

 

이럴경우..

$row['aaa']; 값을 가져올때 그룹으로 묶여있으니 그 group의 처음값인지 아니면 최종값인지 그게 알고 싶은 거 예요..ㅠㅠㅠ

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 75,405 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT