로그인기록으로 일일방문자수 구하는 쿼리(MySQL)

조회수 2824회

유저아이디(INT) 와 로그인시간(Timestamp)을 컬럼으로 갖고, 유저가 로그인을 할 때마다 1씩 기록을 INSERT시키는 테이블이 있습니다.

이 테이블로부터 중복을 제거한 일일방문자수를 구하고 싶은데, 이상하게 쿼리가 떠오르질 않네요ㅠ

여러가지를 시도해보다가

일단은

SELECT A, COUNT(*) FROM (SELECT DATE(로그인시간) AS A, 유저아이디 FROM 로그인기록테이블 GROUP BY A, 유저아이디) AS B GROUP BY A

이런식으로 해봤는데 ROW수가 2000만개정도 되서 그런지 쿼리 수행에 15분정도 걸리는 것 같습니다.

쓸대없는 연산을 하는 것이라면 DB에 부하도 많이 줄 것 같아서, 이 테이블로부터 동일한 결과를 내는 더 빠르고 효율적인 쿼리가 없을까 궁금한데요.

이 문제에 대한 정석적인 방법이 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 중복을 제거한 일일방문자 => 하루에 한명이 여러번 로그인한 것을 한번으로 계산하겠다라는 의미인가요? 허대영(소프트웨어융합대학) 2016.8.17 09:36

2 답변

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)