我有一个问题,我的教授给了我一个关于这样做的声明
有多少客户是“鲸鱼”,即他们一生中花了超过4,000美元?花了不到20美元的“虾”有多少?
这是我们使用的在线数据库:http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
运行此查询以创建另一个表,然后帮助我(如果可以)
CREATE TABLE ByCustomerOrders AS
SELECT
o.OrderID
, p.ProductName
, p.ProductID
, Price
, Quantity
, Price * Quantity AS subtotal
, c.CustomerID
, s.SupplierID
FROM OrderDetails AS od
LEFT JOIN Orders AS o
ON od.OrderID = o.OrderID
LEFT JOIN Products AS p
ON p.ProductID = od.ProductID
LEFT JOIN Customers AS c
on c.CustomerID = o.CustomerID
LEFT JOIN Suppliers AS s
ON s.SupplierID = p.SupplierID;
我正在尝试将每个客户订单组合在一起,按照客户ID对总和进行分组,然后在表格中将其显示为每个客户ID的一行,以及他们从小计订购的总金额
SELECT customerID, SUM(subtotal) AS 'total_money_spent' FROM ByCustomerOrders GROUP BY customerID ORDER BY 'total_money_spent' DESC LIMIT 1;
这似乎不起作用,因为它显示值为111.任何人都看到了问题?
答案 0 :(得分:2)
你的陈述末尾有一个LIMIT 1,它只显示第一个结果。
当你跑步时: SELECT customerID,SUM(小计)AS'total_money_spent'FROM ByCustomerOrders GROUP BY customerID ORDER BY'total_money_spent'DESC;
输出所有分组的总数