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

group by 후 order by 질문드립니다. 채택완료

lacomparte 7년 전 조회 7,160

 

1. 이틀간 검색어를 가져온다

2. pp_word 로 묶어서 카운팅한다

3. 카운팅 값이 같으면 최근에 검색된 순으로 먼저 정렬한다.

 

위의 조건의 쿼리를 아래와 같이 짰습니다.

 

select pp_word, max(pp_id), count(*) as cnt from g5_popular where pp_date BETWEEN DATE_ADD(NOW(),INTERVAL -2 day) AND NOW() group by pp_word order by cnt desc, pp_id DESC, pp_word limit 0, 10

 

근데.. 3번이 제대로 안되는데..

group by pp_word 로 해서 order by cnt desc, pp_id desc 로 하면

되는거 아닌가요?ㅠㅠ

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

답변 2개

채택된 답변
+20 포인트
o
7년 전

max(pp_id) 에 max(pp_id) as pp_id 를 추가해 보세요 

select pp_word, max(pp_id) as pp_id, count(*) as cnt from g5_popular where pp_date BETWEEN DATE_ADD(NOW(),INTERVAL -2 day) AND NOW() group by pp_word order by cnt desc, pp_id DESC, pp_word limit 0, 10

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

답변에 대한 댓글 1개

l
lacomparte
7년 전
아......
max(pp_id) 라서
pp_id 라고 인식을 못하는거군요....

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

S
7년 전

쿼리문에는 이상이 없어 보이는데요...

 

select pp_word, max(pp_id) as max_id, count(*) as cnt from g5_popular where pp_date BETWEEN DATE_ADD(NOW(),INTERVAL -2 day) AND NOW() group by pp_word order by cnt desc, max_id DESC  limit 0, 10

 

이렇게 해보세요..

 

전 이상없이 나오네요..

 

 

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

답변에 대한 댓글 1개

l
lacomparte
7년 전
max(pp_id) as pp_id 를
추가해주어야
pp_id 로 2차 정렬이 되는거였어요...ㅠ
답변감사합니다 :D

레이어 팝업 잘쓰고있습니다 ㅎ

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

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

로그인