如何解决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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。