使用哪里过滤总计

时间:2018-07-01 15:08:33

标签: sql

我需要一些帮助来找到此代码中的错误。 我可以在哪里过滤结果?

SELECT OrderID, sum(UnitPrice * Quantity) as Total
FROM [Order Details]
WHERE Total > 10

1 个答案:

答案 0 :(得分:2)

由于使用聚合函数SUM,因此需要对OrderId进行GROUP BY。

然后您可以在HAVING子句中过滤聚合函数的结果。

另一方面,对OrderId的过滤将在WHERE子句中完成。

但是根据数据库的类型,不允许在HAVING子句中使用别名(例如Total)。

因此,在标准SQL中,它将变成这样:

SELECT OrderID, SUM(UnitPrice * Quantity) as Total
FROM "Order Details"
GROUP BY OrderID
HAVING SUM(UnitPrice * Quantity) > 10