【发布时间】:2015-02-11 15:40:10
【问题描述】:
我需要一些有关 MySQL 查询的帮助。我有一个包含两列(usr_id 和 search_term)以及以下数据的表。
1 学期1
1 学期2
2 学期1
2 学期2
2 学期3
3 学期2
3 学期3
4 学期1
4 学期3
我需要编写一个查询来生成所有可能的术语组合的列表,并报告出现组合的 usr_id 的总数。
学期1 学期2 2
学期1 学期3 1
学期2 学期3 1
【问题讨论】:
我需要一些有关 MySQL 查询的帮助。我有一个包含两列(usr_id 和 search_term)以及以下数据的表。
1 学期1
1 学期2
2 学期1
2 学期2
2 学期3
3 学期2
3 学期3
4 学期1
4 学期3
我需要编写一个查询来生成所有可能的术语组合的列表,并报告出现组合的 usr_id 的总数。
学期1 学期2 2
学期1 学期3 1
学期2 学期3 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;
【讨论】: