使用 OVER 子句将聚合值转换为数字

问题描述 投票:0回答:1

我有一个 SQL 查询,需要查找整数列的总和,然后将其转换为特定的数字数据类型。然而,我面临的问题(我相信)是由于我还需要使用 OVER 子句。

我目前的工作原理(我的查询中有更多的列和其他逻辑,但我相信问题是由于 OVER 子句造成的,所以我忽略了其他逻辑):

SELECT SUM(CAST(DeptID AS NUMERIC(38,1))) over( ) as [DeptID Avg]
FROM table
GROUP BY DeptID

需要查询但不起作用:

SELECT CAST(SUM(DeptID) AS NUMERIC(38,1)) over( ) as [DeptID Sum]
FROM table
GROUP BY DeptID

这是我收到的错误:

消息 156,第 15 级,状态 1,第 1 行
关键字“over”附近的语法不正确。
消息 156,第 15 级,状态 1,第 24 行
关键字“as”附近的语法不正确。
消息 153,第 15 级,状态 2,第 24 行
FETCH 语句中 NEXT 选项的使用无效。

sql sql-server casting aggregate-functions
1个回答
0
投票

您的查询没有任何意义

但是窗口函数必须像

SUM(column) OVER( PARTITON BY column2 'ORDER BY column3)

syntx是固定的,必须遵守,然后yozu才能施放

SELECT CAST(SUM(DeptID) over( )  AS NUMERIC(38,1))  as [DeptID Sum] 
FROM table1 
GROUP BY DeptID
© www.soinside.com 2019 - 2024. All rights reserved.