2015-02-11 81 views
0

我需要一些MySQL查詢幫助。我有一個包含兩列(usr_id和search_term)和以下數據的表格。用Counts交叉加入MySQL查詢

1 TERM1
1 TERM2
2 TERM1
2 TERM2
2 TERM3
3 TERM2
3 TERM3
4 TERM1
4 TERM3

我需要編寫一個查詢生成所有可能的術語組合列表,並報告組合佔據的usr_id的總數RS。

字詞1字詞2 2
字詞1 TERM3 1
詞條2 TERM3 1

回答

1

如果我理解正確的話,你要指望有任何給定的對術語的用戶數。如果用戶多次使用一個術語,則必須小心不要超計算。

select t1.term as term1, t2.term as term2, 
     count(distinct t1.usr_id) as num_users 
from table t1 join 
    table t2 
    on t1.usr_id = t2.usr_id and t1.term <> t2.term 
group by t1.term, t2.term;