[英]MySQL Select Distinct Count
+----------+----------+
| user_id | video_id |
+----------+----------+
| 1 | 1 |
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
+----------+----------+
我有一個類似於上面的表設置。 我想從查詢中返回總計數。
對於每個user_id
他們需要有一個DISTINCT video_id
。 所以上面, user_id = 1
將具有2個唯一的video_id,而user_id = 2
將具有2個唯一的video_id。 這將使總數達到4.我不確定組織查詢以獲得所需結果的最佳方法。
基本上對於每個user_id,我需要像COUNT(DISTINCT video_id)
這樣的東西COUNT(DISTINCT video_id)
我希望最終的結果只是為了返回所有內容的總數。
如果您想獲得每個用戶的總計數,那么您將使用:
select user_id, count(distinct video_id)
from data
group by user_id;
然后,如果你想獲得總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 of both。
第一個查詢將為每個user_id
提供2
的結果,然后獲得所有不同video_ids的總和,並將計數總和。
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.