sql - 使用 where 过滤总数
问题描述
我需要一些帮助来查找此代码中的错误。我可以使用 where 过滤结果吗?
SELECT OrderID, sum(UnitPrice * Quantity) as Total
FROM [Order Details]
WHERE Total > 10
解决方案
由于您使用聚合函数 SUM,因此您需要对 OrderId 进行 GROUP BY。
然后您可以在 HAVING 子句中过滤聚合函数的结果。
另一方面,对 OrderId 的过滤将在 WHERE 子句中完成。
但是根据数据库的类型,不允许在 HAVING 子句中使用别名(fe Total)。
所以在标准 SQL 中,它会变成这样:
SELECT OrderID, SUM(UnitPrice * Quantity) as Total
FROM "Order Details"
GROUP BY OrderID
HAVING SUM(UnitPrice * Quantity) > 10
推荐阅读
- python - 样式表元素适用于 Windows,但不适用于 raspberry-pi
- typescript - 我可以让 lodash 省略返回特定类型而不是部分类型吗?
- python - 如何为 tkinter 按钮分配功能?
- javascript - 如何使用 create-react-app 项目访问文件系统(如 react-native-fs 模块)?
- go - 比较 Go Win32 系统调用和 cgo:它的开销是否相同?
- javascript - 在打字稿中拆分嵌套数组
- spring - Hibernate:无法在类上找到适当的构造函数
- javascript - 如何从 Chrome 扩展中的后台脚本访问所有选项卡的 DOM?
- javascript - 从容器中获取数据
- python - 如何有效地将级别添加到熊猫系列索引以创建多级?