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

SQL group by order by

나르세드 11년 전 조회 7,264
제목별 wr_3(0~100)의 작업률 필드의 최대값해서 group by로 뽑으려고 했는데 잘 안되네요;;;
 
wr_subject | wr_3 | wr_datetime 의 컬럼중에 실제 wr_subject를 group by, wr_3를 order by로 했는데
wr_3값이 가장 낮은 값으로 SELECT 되어 뿌려지네요;;
 
wr_subject | wr_3 | wr_datetime
> 작업1 | 10 | 2014-03-19 11:11:22
> 작업1 | 20 | 2014-03-19 11:22:22
> 작업1 | 30 | 2014-03-19 11:33:33
 
 
 
아래는 제가 사용한 쿼리문 인데, 결국 두번 select 해야하는지...
SELECT * FROM `TABLE`
WHERE wr_is_comment = '1' and wr_parent = '".$wr_idx."' and wr_comment = '".$wr_idz."' and wr_comment_reply <> ''
GROUP BY wr_subject HAVING wr_3=max(wr_3)
ORDER BY wr_datetime DESC";
 
조언 부탁드려 봅니다.
 
 
 
댓글을 작성하려면 로그인이 필요합니다.

답변 4개

11년 전
max를 넣어야 해요

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

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

11년 전
wr_subject | wr_3 | wr_datetime
> 작업1 | 10 | 2014-03-19 11:11:22
> 작업1 | 20 | 2014-03-19 11:22:22
> 작업1 | 30 | 2014-03-19 11:33:33
> 작업2 | 10 | 2014-03-17 11:33:33
> 작업2 | 15 | 2014-03-18 11:33:33
> 작업2 | 50 | 2014-03-20 11:33:33


실제 select * temptable .... group by wr_subject / order by wr_3 desc
후 for문으로 돌려서 나오는 목록이
> 작업 1 | 30 | 2014-03-19 11:33:33
> 작업 2 | 50 | 2014-03-20 11:33:33


이렇게 나와야 하지만 저의 경우는 
> 작업1 | 10 | 2014-03-19 11:11:22
> 작업2 | 10 | 2014-03-17 11:33:33

이렇게 나옵니다;;

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

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

11년 전
select wr_subject, max(wr_3) from temptable group by wr_subject
이 쿼리를 원하시는 것인가요?
로그인 후 평가할 수 있습니다

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

11년 전
wr_3에 최대값을 뽑으려면
max(wr_3) 이용하시면 되요

그런데 문자로 group by는 좋은 방법은 아니에요
키값이라면 모르겠지만요

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

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

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

로그인