Java 每个月的平均客户支出以及每个月的订购项目数量
我有4张桌子:Java 每个月的平均客户支出以及每个月的订购项目数量,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我有4张桌子: CUSTOMER (idCustomer,name,phone,email, markdown) ORDER (idOrder,day,Customer_idCustomer) ORDERITEM (idOrderItem, quantity, Order_idOrder, Product_idProduct) PRODUCT (idProduct,name,price,description). 查询的目的是什么: 每个月的平均客户支出(每个客户) 订购物品的数量 我已经写了
CUSTOMER (idCustomer,name,phone,email, markdown)
ORDER (idOrder,day,Customer_idCustomer)
ORDERITEM (idOrderItem, quantity, Order_idOrder, Product_idProduct)
PRODUCT (idProduct,name,price,description).
查询的目的是什么:
因为我是用JDBC为Java应用程序做这项工作的,也许我可以拆分这两个查询并分别计算平均值,但最好的方法是什么?有没有办法只用两个SQL查询就可以做到这一点 谢谢你的帮助 我用于降价的查询:
String sql = "SELECT c.markdown, SUM(oi.quantity * p.price)
FROM orderitem oi, `order` o, product p, customer c
WHERE c.idCustomer = o.Customer_idCustomer
AND oi.Order_idOrder=o.idOrder
AND oi.Product_idProduct=p.idProduct
AND o.idOrder=" + idOrderValue + "
GROUP BY oi.Order_idOrder";
您希望使用
JOIN
s进行聚合查询。使用正确的JOIN
语法!请勿在FROM子句中使用逗号:
SELECT year(o.day) as yyyy,
month(o.day) as mm,
SUM(oi.quantity * p.price) / COUNT(DISTINCT c.idCustomer) as avg_customer_spending,
SUM(oi.quantity) as num_items
FROM customers c JOIN
orders o
ON c.idCustomer = o.Customer_idCustomer JOIN
orderitem oi
ON oi.Order_idOrder = o.idOrder JOIN
product p
ON oi.Product_idProduct = p.idProduct
GROUP BY year(o.day), month(o.day);
另外,请设置当前查询的格式,使其可读。单行查询不容易阅读,这意味着我们无法帮助您。非常感谢您的快速响应。看起来效果不错。