2026, 새로운 도약을 시작합니다.

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개

채택된 답변
+20 포인트

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개

아......
max(pp_id) 라서
pp_id 라고 인식을 못하는거군요....

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

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

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

이렇게 해보세요..

전 이상없이 나오네요..

2105709021_1534180946.8513.png

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

답변에 대한 댓글 1개

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

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

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

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

로그인
🐛 버그신고