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

标签 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 

但它没有给我我想要的。如何获取国家数量以及每个国家的订单数量?

最佳答案

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

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 值相关的所有行进行计数。在 select 和 group by 子句中添加或替换国家名称列。

关于mysql - 如何列出每个国家/地区的订单数量以及国家/地区名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147969/

相关文章:

php - Warning : mysql_result(). 无法解决

mysql - 在一个查询中获取两个表字段的计数

mysql - 如何更改jhipster中实体的默认ID字段的名称和值

sql - 是否可以为 psql 中的表创建全局别名?

java - 如何 "package"SQL 数据库

sql - 从SQLite中的特定日期检索数据

java - SQL 一行等于两行合并

php - Moodle 中删除的用户仍然出现在类(class)完成表中

phpMyAdmin float 禁用轮数

sql - Greenplum 与 PostgreSQL