sql - 在 sql 查询中使用 count、sum 和 group by
问题描述
我正在尝试编写一个查询,显示订单数量以及每个客户在这些订单中购买的商品数量
SELECT customers.customer_id, COUNT(orders.order_id),
SUM(order_details.order_qty)
FROM customers
LEFT OUTER JOIN orders
ON orders.customer_id=customers.customer_id
LEFT OUTER JOIN order_details
ON order_details.order_id=orders.order_id
GROUP BY customers.customer_id;
我有三个表要加入,正如你到目前为止所写的那样......问题是我的查询结果是错误的
customer_id: 1 应该有 3 个订单,这些订单的商品数量应该是 5
我正在使用 Oracle 数据库版本 12.2.0.1.0
解决方案
问题是我的查询结果是错误的
猜测您的订单有不止一个详细信息记录。因此,像这样加入它们将根据详细信息记录的数量生成一个产品。
您可以做的是使用内联视图来聚合qty
每个订单 ID;
SELECT customers.customer_id
, COUNT(orders.order_id)
, SUM(order_details.tot_qty)
FROM customers
LEFT OUTER JOIN orders
ON orders.customer_id=customers.customer_id
LEFT OUTER JOIN (select order_id, SUM(order_qty) as tot_qty
from order_details
group by order_id) order_details
ON order_details.order_id=orders.order_id
GROUP BY customers.customer_id;
推荐阅读
- javascript - 用 hooks api 行为不端反应烤面包机
- python - 无法将 Django 查询集转换为列表
- flutter - 如何将地图转换为字符串?
- c# - 根据属性的值将 Item 拆分为 N Item
- r - 计算分数的函数
- javascript - 当后续字符可能不同时,在自定义 JS 变量中使用正则表达式来提取字符串的一部分
- python - 查找在 8 天内具有最大平均值的行
- c# - 在超链接字段 href 中设置下拉列表值
- javascript - 导入 Office ui/Bootstrap 时出现“Uncaught SyntaxError: Unexpected token export”
- javascript - Electron:如何安全地将全局变量注入 BrowserWindow / BrowserView?