我正在尝试执行一些计算作为查询的条件(整个查询基于90天,但我希望某些计算仅考虑最近30天以及条件分组)
>但是我下面的查询抛出一个错误,即有一个'``意外的'('期望FROM,INTO
以下是查询:
SELECT
employee,
manager,
productGroup,
productDetail,
productCategory,
productCount,
quant as sales,
/*problem starts below*/
sum(case when last_date > current_date - 30 days then quant else 0 end) over (partition by employee) as emp_25,
sum(case when last_date > current_date - 30 days then quant else 0 end) over (partition by manager) as manager_25,
sum(case when last_date > current_date - 30 days then quant else 0 end) over (partition by p.productGroup) as productGroup_25
FROM PRODUCTS p
WHERE last_date > CURRENT_DATE - 90 days
ORDER BY manager,productGroup,productDetail,productCategory;
基本上我得到了逐项计数,但是我希望最后3个“ SUM”值返回列出的产品组的数量总和,该数量由雇员,经理分组,然后在过去30天总计
我的语法是否正确?
答案 0 :(得分:1)
用于iSeries 7.2的Db2在其OLAP(aka窗口)表达式的实现中仅支持排名和行编号。
例如与本手册的Db2 for i 7.2对比
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/db2/rbafzolapexp.htm
针对此页面的Db2 11.1(适用于LUW),该页面允许OLAP表达式中的列聚合功能