쿼리문에서 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의 처음값인지 아니면 최종값인지 그게 알고 싶은 거 예요..ㅠㅠㅠ

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 게시물이 없습니다.

회원로그인

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

© SIRSOFT