group by 후 order by 질문드립니다.
본문
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
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
쿼리문에는 이상이 없어 보이는데요...
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
이렇게 해보세요..
전 이상없이 나오네요..