就算时a和b表join+on仍然会有笛卡尔积的形式
因为如果a表和b表的id都有1对多的形式时,就是笛卡尔积
比如a中id=1的记录有3条(ID,维修时间),
b中id=1的记录有2条(ID,用户上报时间)
,join,on之后就会有6条!
这样之后再groupby(ID)的时候就会有问题,可能我们仅需要的时用户上报时间大与维修时间的 (因为这样才链接)
的用户上报次数大于2的车辆,这样就会重复记录
总之要理解字段的含义,再链接
那这种情况下怎么保证join之后和a的记录数量一致(b同理)
先join之后再group by a的id,维修时间,当然这个时候还要再取一次,取的时候不在groupby字段的字段,按照业务理解取max或者sum之类的(相当于去重)
详情可见didi的groupby写的blog