我正在建立一个查询,我需要为每个国家/地区选择订单的最大折扣。因此需要每个国家的总折扣。这些国家必须是独一无二的。
我的查询未显示唯一的国家/地区。
SELECT DISTINCT
c.Country,
SUM((od.Quantity * od.UnitPrice) * od.Discount) as Discount
FROM
Customers c
INNER JOIN
Orders o ON (c.CustomerID = o.CustomerID)
INNER JOIN
OrderDetails od ON (o.OrderID = od.OrderID)
GROUP BY
c.Country, od.Discount
答案 0 :(得分:2)
从od.Discount
移除group by
,因为需要找到每个国家/地区的最大折扣,只保留按国家/地区划分的国家/地区
同时从选择
中删除distinct
SELECT c.Country,
Sum (od.Quantity * od.UnitPrice * od.Discount) AS Discount
FROM Customers c
INNER JOIN Orders o
ON c.CustomerID = o.CustomerID
INNER JOIN OrderDetails od
ON o.OrderID = od.OrderID
GROUP BY c.Country
答案 1 :(得分:1)
最高折扣不会使用max()
吗?
Select c.Country, MAX(od.Discount)
FROM Customers c INNER JOIN
Orders o
ON c.CustomerID = o.CustomerID INNER JOIN
OrderDetails od
ON o.OrderID = od.OrderID
GROUP BY c.Country;
使用distinct
时,select
中不需要group by
。
答案 2 :(得分:0)
因为您还按国家和折扣进行分组,但您只想按国家/地区进行分组。
GROUP BY c.Country, od.Discount
变为
GROUP BY c.Country