Mysql 显示每个客户从伦敦发出的订单数量
给出两张表:客户和订单 _____顾客 客户识别码 客户名称 联系人姓名 .... 城市 国 1. 阿尔弗雷德·福特基斯特 玛丽亚·安德 .... 柏林 德国 4. 号角周围 哈代 .... 伦敦 英国Mysql 显示每个客户从伦敦发出的订单数量,mysql,sql,Mysql,Sql,给出两张表:客户和订单 _____顾客 客户识别码 客户名称 联系人姓名 .... 城市 国 1. 阿尔弗雷德·福特基斯特 玛丽亚·安德 .... 柏林 德国 4. 号角周围 哈代 .... 伦敦 英国 我认为您可以通过加入customer和order表,然后从customer\u表中选择customer\u id,然后使用订单总数来实现这一点 查询示例: SELECT c.customer_id, count(distinct o.order_id) FROM cu
我认为您可以通过加入customer和order表,然后从customer\u表中选择customer\u id,然后使用订单总数来实现这一点 查询示例:
SELECT
c.customer_id,
count(distinct o.order_id)
FROM customers as c
LEFT JOIN orders as o on o.customer_id = c.customer_id
WHERE c.city = 'London'
GROUP BY c.customer_id
你在那里走了大半段路。你需要做几件事:
- 聚集
- 修复
条件连接
客户id
时
SELECT c.customer_id, COUNT(*) as num_orders
FROM customers c INNER JOIN
orders o
ON c.customer_id = o.customer_id
WHERE c.city = 'London'
GROUP BY c.customer_id;
我把两张桌子调换了一下。我只是觉得从客户到订单更自然
请注意,这仅返回至少有一个订单的客户。我猜,要成为“客户”,必须有人下订单。请阅读,这样你可以在提问时自己进行格式化。问题中有一个提示(“你的解决方案应该包含两列”),那么为什么要选择这将给出所有列,问题中还有另外两个提示:1)显示金额,2)按每位客户列出。你应该根据这些提示做点什么。(除了在这里询问如何做……)