SQL CTE Returns 不是按表达式分组错误
SQL CTE Returns Not A Group By Expression Error
我正在尝试为 return 发票所有行的总和创建 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_type_id
,i.invoice_type_desc
,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
或者您可能想在 GROUP BY
中包含 rowid
。
我正在尝试为 return 发票所有行的总和创建 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_type_id
,i.invoice_type_desc
,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
或者您可能想在 GROUP BY
中包含 rowid
。