sql - 聚合可能不会出现在 WHERE 子句中,除非它出现在 HAVING 子句中包含的子查询中
问题描述
消息 147,级别 15,状态 1,第 191 行
聚合可能不会出现在 WHERE 子句中,除非它位于包含在 HAVING 子句或选择列表中的子查询中,并且正在聚合的列是外部引用。
代码:
select
count(i.item_id), warehouse_id
from
items_in_warehouse i
where
date_from >= '2021-01-01'
and date_from <= '2021-03-31'
and count(warehouse_id) >= 5
and count(warehouse_id) <= 10
group by
warehouse_id;
我认为问题在于计数功能。
解决方案
错误消息几乎是在告诉您如何修复它,您需要使用它having
来过滤聚合:
您将having
在group by
having count(warehouse_id) between 5 and 10;
推荐阅读
- php - 我尝试将删除按钮标签替换为锚标签,但没有成功
- reactjs - ReactJS 挂钩 useContext 问题
- javascript - 加载 javascript 时文本生涩
- javascript - 完整日历中同一日期的多个事件问题
- javascript - 将 Axios 响应作为 prop 发送到组件
- python-2.7 - 我正在尝试为我的 GUI 应用程序设置固定框架。窗口不应改变其大小
- spring-mvc - 在两个不同的 @RestController 类中有两个完全相同的 @ExceptionHandler 是不好的做法吗?
- x86-16 - 实模式下的有效寻址 - 访问数组
- kubernetes - 在我的情况下,为什么 pod 状态会以 crashloopbackoff 的形式出现?
- hadoop - 纱线公平调度程序没有均匀分配资源