如何比较两个表中的列组合?

时间:2020-01-27 14:55:07

标签: mysql sql

我有两个来自不同年份(2015年和2016年)的表。两个表都有三列,如以下table_2015中所示:

customer_id || plan_type || most_recent_date

110 || monthly || 2015/10/01

111 || weekly || 2015/11/07

我想看看几年之间有多少人具有相同的计划类型,以及有多少人转换了计划类型。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

如果客户在每个表中仅出现一次并且您只关心重叠部分,则:

Today + 1 == EventStartDate

如果您实际上要比较计划类型,请使用汇总:

select sum(t1.plan_type = t2.plan_type) as num_same,
       sum(t1.plan_type <> t2.plan_type) as different
from t1 join
     t2
     on t1.customer_id = t2.customer_id;

答案 1 :(得分:1)

尝试一下...

具有相同计划类型的编号

select count(*) from t1 , t2
   where t1.customer_id = t2.customer_id
   and t1.plan_type = t1.plan_type;

具有不同计划类型的编号

select count(*) from t1 , t2
   where t1.customer_id = t2.customer_id
   and t1.plan_type != t1.plan_type;