【问题标题】:Cross Join MySQL Query with Counts使用计数交叉连接 MySQL 查询
【发布时间】: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 sql


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2013-02-04
      • 2015-03-18
      • 2013-04-04
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      相关资源
      最近更新 更多