Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 有人能帮助我理解SQL Server查询中的错误顺序吗?_Sql Server_Sql Order By_Sql Server 2019 - Fatal编程技术网

Sql server 有人能帮助我理解SQL Server查询中的错误顺序吗?

Sql server 有人能帮助我理解SQL Server查询中的错误顺序吗?,sql-server,sql-order-by,sql-server-2019,Sql Server,Sql Order By,Sql Server 2019,尝试输入总人口的查询时出错。vs。疫苗接种: 老实说,我不知道如何纠正这个错误,而且我已经尽可能多地尝试了SQL(我对SQL非常陌生),到目前为止,我都在修改代码来修复它。有什么建议吗?(如果需要进一步的代码,请告诉我,我将发布整个项目,以便更好地了解问题的起因)错误消息是关于“范围的窗口框架的顺序子句”-您可能正在查看代码,看不到范围,也不知道它在说什么 这有助于了解范围是以下选项的可选部分: 因此,接下来我们再次阅读该消息,发现它在抱怨dea.LOCATION和dea.DATE列中存储的数

尝试输入总人口的查询时出错。vs。疫苗接种:


老实说,我不知道如何纠正这个错误,而且我已经尽可能多地尝试了SQL(我对SQL非常陌生),到目前为止,我都在修改代码来修复它。有什么建议吗?(如果需要进一步的代码,请告诉我,我将发布整个项目,以便更好地了解问题的起因)

错误消息是关于“
范围的
窗口框架的顺序子句”-您可能正在查看代码,看不到
范围
,也不知道它在说什么

这有助于了解
范围
是以下选项的可选部分:

因此,接下来我们再次阅读该消息,发现它在抱怨
dea.LOCATION
dea.DATE
列中存储的数据的组合宽度。在没有看到列定义的情况下,我猜任何
DATE
列都会相当小,因此可以合理地假设大部分数据来自
LOCATION

一方面,我们可以尝试减少此列的宽度,例如使用子字符串。但是,如果我们再看一遍整个
OVER()
子句,就会发现在
orderby
部分中根本不需要它

为什么?

因为同一列被用来对数据进行分区。
orderby
定义了每个分区内的排序,但如果每个分区只包含共享相同
dea.LOCATION
值的行,则所有行都将根据该列值进行同等排序


因此,只需将其从
ORDER BY
中删除,错误就会消失。

首先,您应该将
SELECT
语句作为文本复制到问题中。当然,还有错误消息。这将有助于找到愿意阅读您的问题的人。您是否可以尝试按dea.Location,dea.DATE进行排序,而不是按2,3进行排序?如果您不能从一个坚实的架构开始构建,我可以预见未来会出现许多问题。为什么列的位置(可能还有日期)如此之大?就这一点而言,为什么要使用由三部分组成的名称?您的连接应该决定用于对象引用的数据库。不要按顺序排列——这是非常不鼓励的。
OVER (   
   [ <PARTITION BY clause> ]  
   [ <ORDER BY clause> ]   
   [ <ROW or RANGE clause> ]  
  )
OVER (PARTITION BY dea.LOCATION ORDER BY dea.LOCATION, dea.DATE)