想知道如果有人可以帮助新手出来一些SQL?SQL计数与两个表
右键所以基本上我想所有的客户ID的具有一定COUNTRYCODE相关的我可以通过对客户表做一个简单的查询,但我然后需要找出多少表格客户已经在订单表中提交。
因此,在总结,我需要得到的customerID的从客户表列表,并计算他们在订单表多少时间显示出来。
最简单的方法是什么?
P.S.请忽略上面图片中的任何数据类型/关系问题,这仅仅是一个例子。
谢谢。
想知道如果有人可以帮助新手出来一些SQL?SQL计数与两个表
右键所以基本上我想所有的客户ID的具有一定COUNTRYCODE相关的我可以通过对客户表做一个简单的查询,但我然后需要找出多少表格客户已经在订单表中提交。
因此,在总结,我需要得到的customerID的从客户表列表,并计算他们在订单表多少时间显示出来。
最简单的方法是什么?
P.S.请忽略上面图片中的任何数据类型/关系问题,这仅仅是一个例子。
谢谢。
加入的表,在国家代码和组筛选结果:
SELECT CustomerID, COUNT(*)
FROM query_test.customer JOIN query_test.Order USING (CustomerID)
WHERE query_test.customer.countrycode = ?
GROUP BY CustomerID
你可以使用
SELECT
c.customerID,
count(o.form_id) AS form_count
FROM
customer c INNER JOIN order o
ON c.customerID = o.customerID
WHERE
c.countrycode = ??
GROUP BY
c.customerID
如果您有没有任何订单的客户,那么你将要a left outer join
:
SELECT c.CustomerID, COUNT(o.CustomerID) as NumOrders, COUNT(distinct FormID) as NumForms
FROM query_test.customer c LEFT JOIN
query_test.Order o
on c.CustomerID = o.CustomerId
WHERE c.countrycode = ?
GROUP BY c.CustomerID;
注意这个数字既包括订单数量又包括表单数量秒。