gpt4 book ai didi

sql - "Incorrect syntax"使用 OVER() 时出错

转载 作者:行者123 更新时间:2023-12-02 11:37:29 24 4
gpt4 key购买 nike

我有每月每个交易日的销售预算。因此,第 1 天的预算为 300,第 2 天的预算为 400,本月迄今的预算为 700。我在查询中收到此错误:“ROWS”附近的语法不正确。

select 
TradingDate
,Budget
,sum(Budget) over (PARTITION BY TradingDate
order by TradingDate asc
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING),1) AS BudgetMTD
from #4

最佳答案

您的查询正在计算每天金额的总和,以及当天的下一个金额(您的分区和排序依据位于同一字段)。这是允许的,但这意味着以下三件事之一:

  1. TradingDate 是一个日期,每个日期都有多个值。如果是这样,总和是不确定的,因为您不知道接下来会出现哪一个。
  2. TradingDate 的命名很糟糕,它实际上是一个日期时间。在这种情况下,您将获得同一日期的下一个日期时间值。
  3. 您的查询格式错误,您的意思并不是“按 TradingDate 排序”。

我推测您想要两件事之一。第一个是一天预算与第二天预算的总和。另一个是累计总和。

您可能每天有多行,并且您需要当天的预算总和。如果是这种情况,那么您可以使用更简单的公式:

select TradingDate, Budget,
sum(Budget) over (PARTITION BY TradingDate) AS BudgetMTD
from #4

关于sql - "Incorrect syntax"使用 OVER() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com