【发布时间】:2009-01-09 18:25:33
【问题描述】:
我有这些表:
customer
--------
customer_id int
name varchar(255)
order
-----
order_id int
customer_id int
discount boolean
我可以通过如下查询获得每个客户的订单数量:
select c.id, count(o.order_id)
from customer c
left join order as o using c.customer_id = o.customer_id
group by 1
或者,我可以通过以下方式获取每个客户的折扣订单数量:
select c.id, count(o.order_id)
from customer c
left join order as o using c.customer_id = o.customer_id and o.discount = true
group by 1
但我想不出在一个查询中同时获取两者的方法。我尝试了以下方法:
select c.id, count(o.order_id), count(o2.order_id)
from customer c
left join order as o using c.customer_id = o.customer_id
left join order as o2 using c.customer_id = o2.customer_id and o2.discount = true
group by 1
但它没有用。是否可以在单个(MySql)查询中计算两者?
干杯, 唐
【问题讨论】: