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

sql 질문입니다.. 채택완료

humanb2box 7년 전 조회 1,794

</p>

<p>SELECT wr_2, wr_3, count(*) AS loginCount FROM 테이블GROUP BY wr_3 HAVING count(*) > 1 order by loginCount desc</p>

<p>

 

이 명령어를 통해 wr_3이 중복되는 숫자를 추출했습니다.

근데 양이 워낙 많다보니

높은 숫자순으로 상위 10개만 보여주고 싶은데 

 

</p>

<p>select top(n)</p>

<p>

이렇게 시작하라는 내용을 찾아서 적용을 했는데 되직가 않네용,,

 

혹시 방법이 있을까요?

 

추가로

 

where절을 추가해서 특정 날짜부터 보고싶어서

 

SELECT wr_2, wr_3, count(*) AS loginCount FROM 테이블 GROUP BY wr_3 HAVING count(*) > 1 where wr_datetime between '2018-01-02' and '2018-01-09'  order by loginCount desc

 

아무것도 뜨지가 않네요,,

 

도움  부탁드립니다..

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

답변 2개

채택된 답변
+20 포인트
플래토
7년 전

쿼리문 뒤에 limit 를 주세요

 

order by loginCount desc limit 10;

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

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

플래토
7년 전

두번째 기간을 주려면

 

비교하려는 문장과  조건의 구조가 동일해야 하는데

datetime 과 date형과 비교하였기에 나오질 않는겁니다.

 

where 절을

</p>

<p>where date_format(wr_datetime, '%Y-%m-%d') between '2018-01-02' and '2018-01-09' </p>

<p>

이렇게 변경하시면 정상적으로 나올겁니다.

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

답변에 대한 댓글 4개

h
humanb2box
7년 전
첫번째는 감사하게도 작동하나 두번째 where는 작동하지 않네용 ㅠㅠ
h
humanb2box
7년 전
쿼리문은 이렇게 작성했습니다
[code]
SELECT wr_2, wr_3, count(*) AS loginCount FROM 테이블 GROUP BY wr_3 HAVING count(*) > 1 where date_format(wr_datetime, '%Y-%m-%d') between '2018-01-02' and '2018-01-09' order by loginCount desc limit 20;
[/code]
플래토
7년 전
@humanb2box
테이블 바로뒤에
where절이 와야하고
그뒤에 group by 입니다.
h
humanb2box
7년 전
되네요 ㅎㅎㅎ 제가 문법을 잘 몰라서 감사합니다.

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

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

로그인