2016-08-18 2 views
0

나는 다음과 같은 열이 '비디오'라고 볼 수 있습니다 :MySQL의 반환 고유 값

email(varchar) 
time(varchar) 
page(varchar) 

뷰마다 가진 사람에 대한 행이를 주어진 이메일이 페이지를 방문했습니다.

각 이메일 주소, 적어도 한 페이지 이상 방문한 횟수 및 날짜에 관계없이 방문한 별개 페이지 수를 보여주는 결과를 반환하고 싶습니다.

아마도 내 문제 중 하나는 시간이 varchar로 저장되었다는 것입니다. 다음 시간에있는 형식의 예입니다

2016-01-25T14 :. 36

답변

0

당신은 일

select email, date(time), count(*) 
from mytable 
group by email, date(time); 

에 의해 방문의 수를 이리저리하여 그룹을 사용할 수 있습니다
select email, count(distinct page) 
from mytable 
group by email; 
1

STR_TO_DATE을 사용하여 time 문자열의 날짜 부분을 추출하고 해석하십시오. 고유 한 날짜와 고유 한 페이지 만 계산하려면 COUNTDISTINCT 키워드와 함께 사용하십시오.

SELECT email 
    , COUNT(DISTINCT STR_TO_DATE(time, '%Y-%m-%d')) AS visit_days 
    , COUNT(DISTINCT page) AS visit_pages 
    FROM videos 
GROUP BY email 
; 
+0

완벽하게 작동합니다. 감사합니다. 하나의 쿼리에서 두 개의 개별 카운트를 수행하는 방법을 잘 모르겠습니다. – dmohr