簡體   English   中英

MySQL選擇不同的計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM