programing

MySQL 구별된 개수 선택

css3 2023. 10. 17. 20:28

MySQL 구별된 개수 선택

+----------+----------+
| user_id  | video_id |
+----------+----------+
|        1 |    1     |
|        1 |    1     |
|        1 |    2     |
|        2 |    1     |
|        2 |    2     |
+----------+----------+

저는 위와 비슷한 테이블 셋업이 있습니다.저는 제 문의에서 총 개수를 반환하고 싶습니다.

각각에 대하여user_id그들은 필요합니다.DISTINCT video_id. 그래서 위에.user_id = 12개의 독특한 video_id's와user_id = 22개의 고유한 video_id를 가질 것입니다.이렇게 하면 총 4명이 됩니다.원하는 결과를 얻기 위해 쿼리를 구성하는 최선의 방법을 모르겠습니다.

기본적으로 각각의 user_id에 대해, 나는 다음과 같은 것이 필요합니다.COUNT(DISTINCT video_id)

나는 단지 모든 것의 합계를 반환하는 최종 결과를 원합니다.

각 사용자의 총 카운트를 얻으려면 다음을 사용합니다.

select user_id, count(distinct video_id)
from data
group by user_id;

그런 다음 total video_ids를 가져오려면 하위 쿼리 안에 이 항목을 감싸야 합니다.

select sum(cnt) TotalVideos
from
(
  select user_id, count(distinct video_id) cnt
  from data
  group by user_id
) d

SQL Fiddle with Demo를 참조하십시오.

첫번째 쿼리는 다음 결과를 제공합니다.2일별로user_id모든 다른 video_id의 합계를 구하려면 카운트를 합산합니다.

select user_id, count(distinct video_id) from TABLE group by user_id;

총 개수...

select distinct count(video_id) from Table
where...
group...

이제 총 개수의 고유 user_id, video_id 쌍을 다음 쿼리로 계산할 수 있습니다.

select count(distinct user_id, video_id) from table;

언급URL : https://stackoverflow.com/questions/15710930/mysql-select-distinct-count