sql - 如何在 Where 子句中使用分组功能
问题描述
有没有办法在 where 子句中使用组函数?我正在尝试根据以下逻辑插入记录,但仅适用于 qty1 < qty2
我的代码:
With t1 as (select item_no, qty,
min (stock_date)
From stock_tab
Where stock_date < SYSDATE
Group by item_no, qty
Select item_no, min(t1.qty) qty1, max(t2.qty) qty2, max(stock_date)
From t1
Where t1.qty1 < t1.qty2 --incorrect
-- min(t1.qty) < max(t1.qty2) --also tried this
Group by item_no
Oder by max(t1.stock_date) desc, max(t1.qty) desc
解决方案
如果您想使用聚合函数作为您正在搜索的过滤器having
。
With t1 as (select item_no, qty,
min (stock_date)
From stock_tab
Where stock_date < SYSDATE
Group by item_no, qty)
Select item_no, min(t1.qty) qty1, max(t2.qty) qty2, max(stock_date)
From t1
Group by item_no
having min(t1.qty) < max(t1.qty2)
Order by max(t1.stock_date) desc, max(t1.qty) desc
推荐阅读
- c# - 如何按顺序使用列表项反序列化 XML
- r - 使用隐藏的 html 抓取动态 html 页面
- python - 如何将多个点映射到沿 y 轴的颜色渐变?
- android - 如何在 get 方法改造中发送请求正文
- javascript - 当包含在启用 Typescript 的 Vue.js 项目中时,Vuetify 停止工作
- r - 如何使用“getTree”树进行预测
- c# - c# 带有用户验证的控制台应用程序。它应该显示两个菜单:(1)新用户(2)新用户的旧用户:
- azure-devops - Azure DevOps Pipeline 失败,因为密码带有特殊字符
- notepad++ - 如何更改记事本++中的匹配高亮标签,如崇高?
- python - django all-auth 通过 twitch 进行身份验证