首页 > 解决方案 > 在mySql中计算具有不同条件的表中的元素?

问题描述

我想计算用户拥有的所有订单以及用户拥有的所有完整订单。我带着这个,但它不工作

select
    count(a.id) as total,
    count(b.id) as complete
from
    user
join
    orders a on user.id = a.user_id
join
    orders b on user.id = b.user_id
where
    a.id = 1
and
    (b.id = 1 and b.complete = 'yes');

任何的想法?

标签: mysql

解决方案


您可以将订单与 yes 相加,并按用户计算不同的 id 组

    select user.id, sum(if(a.complete ='yes',1,0)), count(distinct a.id)
    from user
    INNER join orders a on user.id = a.user_id 
    group by user.id

推荐阅读