2016-08-28 7 views
0

나는 다음과 같은 테이블 구조가 있습니다MySQL의 쿼리

Video_status : 무엇을 얻기 위해 노력하고 있어요 것은 당 사용자 뷰의 숫자가 난

+------------+------------------+------+-----+---------------------+----------------+ 
| Field  | Type    | Null | Key | Default    | Extra   | 
+------------+------------------+------+-----+---------------------+----------------+ 
| id   | int(10) unsigned | NO | PRI | NULL    | auto_increment | 
| video_id | int(10) unsigned | NO | MUL | NULL    |    | 
| status  | varchar(255)  | NO |  | NULL    |    | 
| user_id | int(10) unsigned | NO | MUL | NULL    |    | 
| course_id | int(10) unsigned | NO | MUL | NULL    |    | 
| created_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
| updated_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
+------------+------------------+------+-----+---------------------+----------------+ 

이 동영상에 대한 모든보기를 캡처를 매일 user_id가 날짜별로 그룹화 된 고유 한 날짜이므로 최종적으로 매일 그 동영상을 본 고유 사용자의 수를 구할 수 있습니다. 제안 사항이 있으십니까? 날짜와 동영상 ID로

감사

+1

날짜 선택, 개수 (고유 user_id) 날짜 별 그룹 – Mike

답변

2

그룹화이 특정 일에 비디오 것을 볼 것을 고유 한 사용자의 계산 얻을 것이다.

select 
    date_format(t.the_date, '%m-%d-%Y') as date, 
    video_id, 
    count(distincct user_id) as count_unique_users 
from 
    video_status 
group by 
    date_format(created_at, '%m-%d-%Y'), 
    video_id 

만 모든 동영상 다음 절에 의해 선택하고 그룹에서 video_id 부분을 제거 볼 독특한 사용자가 필요한 경우

.