[英]Count one-to-many using left join gives wrong count on source table
我有兩個表user_results
和user_shares
user_results
具有:
id - pk
platform - string
country - string
created_at - timestamp
user_shares
具有:
id - pk
user_result_id - integer
created_at - timestamp
這是我的查詢:
select
count(user_results.id) as results,
count(user_shares.id) as shares,
user_results.platform as platform
from
user_results
left join
user_shares on user_results.id = user_shares.user_result_id
group by
platform
這是一個帶有模式和有問題的查詢的sql小提琴: http : //sqlfiddle.com/#!9/739a3/2
現在,正如您在小提琴上看到的那樣,每個平台我只有1個結果,但是results
計數顯示(我猜)“沒有共享的結果計數+共享計數”
我做錯了什么?
您需要計數不一樣的distinct user_results.id
,因為聯接表重復了其行:
select
count(distinct user_results.id) as results,
count(user_shares.id) as shares,
user_results.platform as platform
from
user_results
left join
user_shares on user_results.id = user_shares.user_result_id
group by
platform
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.