SQL CTE返回不按表达式分组

问题描述

我正在尝试创建CTE以返回发票所有行的总和,但是我收到一个错误:“不是按表达式分组”。不确定出什么问题了吗?谢谢。

with getinvoices as
(
select 
             i.invoice_nbr,i.invoice_type_id,i.invoice_type_desc,i.invoice_total_amount,ROW_NUMBER() OVER (PARTITION BY i.invoice_nbr ORDER BY i.rowid) rn,sum(i.line_amount) as "Sum Of Line Amount"
             FROM ods_dev.invoices i
             WHERE i.invoice_date>='7/1/2020' and i.invoice_date<'7/2/2020'
                  AND i.invoice_nbr IS NOT NULL
             Group By
                 i.invoice_nbr,i.invoice_total_amount
)
Select *
From getinvoices g
Where g.rn = 1
Order by g.invoice_nbr

解决方法

这是问题所在

ROW_NUMBER() OVER (PARTITION BY i.invoice_nbr ORDER BY i.rowid) rn
-------------------------------------------------------^

我不确定您想做什么。也许:

ROW_NUMBER() OVER (PARTITION BY i.invoice_nbr ORDER BY MIN(i.rowid)) as rn

或者您可能想在rowid中加入GROUP BY

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...