fuliding 2016-06-13 07:22 采纳率: 0%
浏览 1057

关于一个统计的SQL问题

大家好,我遇到了一个问题,是这样的,有2个表,1个表示存储用户银联支付的信息(proposal表),另一个表示存储用户移动支付的,比如微信和支付宝支付之类的(payorder表),现在要做的就是统计一个代理下目前有多少是首存的用户,首存的意思是只存过一次款的,也就是说proposal,payorder这两个表其中一个只有一条数据的,多的都不算,统计每个代理有几个这样的用户,proposal这个表里已经有代理的字段(agent),payorder没有,需要到users表关联(agent字段),请问这个怎么写?

  • 写回答

3条回答 默认 最新

  • yicp123 2016-06-13 09:30
    关注

    大致逻辑是这样:

    select t.userid as userid
    from proposal t
    group by t.agent,t.userid having count(1)<1
    union
    select t2.userid as userid
    from payorder t1
    left join user t2 on t1.agent=t2.agent
    group by t1.agent,t2.userid having count(1)<1;

    具体sql语句的写法还得根据你这两个表的实际情况来定。

    参考自:
    MySQL如何优化GROUP BY http://www.data.5helpyou.com/article237.html

    MySQL如何优化LEFT JOIN和RIGHT JOIN http://www.data.5helpyou.com/article211.html

    评论

报告相同问题?