oracle sql查询根据另一个查询进行计数

时间:2013-03-11 15:47:51

标签: sql oracle

我想知道哪个国家的哪个客户订单最多。所以我有一个sales_table customer_ids。但country_id位于customer_table。所以我需要以某种方式根据国家数量计算客户......但我不知道该怎么做。我

我知道如何计算顾客。

select count(cust_id)
from sh_sales

以及如何统计国家/地区

select count(country_id)
from sh_customers

但我想根据customer_id

中最常用的sh_sales table计算国家/地区

所以它应该以某种方式

select count(country_id)
from sh_customers
where sh_sales.customer ????

我真的需要一些帮助:)

1 个答案:

答案 0 :(得分:3)

这会计算sh_sales表中的记录,并按来自customers表的每个country_id分组

SELECT country_id, count(s.cust_ID)
FROM sh_customers c
    INNER JOIN sh_sales s ON c.cust_id = s.cust_id
GROUP BY country_id

如果由于某种原因,您可以拥有客户记录但没有销售,那么您可以使用LEFT OUTER JOIN为没有任何销售的国家/地区返回NULL