如何列出每个国家/地区的订单数量以及国家/地区名称?

时间:2017-11-07 00:15:05

标签: mysql sql

我有订单表,国家表和客户表。我想按国家/地区获得订单数量。我试过了

SELECT
    COUNT(*)
FROM 
    (
        nation
        INNER JOIN customer ON nation.n_nationkey = customer.c_nationkey
    )
    INNER JOIN orders ON customer.c_custkey = orders.O_CUSTKEY 

但它并没有给我我想要的东西。如何从每个国家获得订单数量的国家数量?

1 个答案:

答案 0 :(得分:2)

您需要一个分组,并且该子句中至少列有一列,例如

SELECT
      nation.n_nationkey, COUNT(*) order_count
FROM nation
INNER JOIN customer ON nation.n_nationkey = customer.c_nationkey
INNER JOIN orders ON customer.c_custkey = orders.O_CUSTKEY
GROUP BY
     nation.n_nationkey

这将导致他查询为n_nationkey的每个唯一值生成一行,并计算与每行的n_nationkey值相关的所有行。在selct和group by子句中添加或替换国家/地区名称列。