Sql 选择列表表达式引用列。。。既不是分组的,也不是聚合的

Sql 选择列表表达式引用列。。。既不是分组的,也不是聚合的,sql,aggregate-functions,Sql,Aggregate Functions,在这篇文章的前言中,我已经看过了类似的话题,我不相信它回答了我面临的问题 我正在使用一个引用135列的SELECT语句,有人要求该语句包含一个聚合函数 这将导致错误,因为代码末尾没有GROUPBY子句 建议的解决方案是按-1,2,3,4..133134135进行分组[OMmiting The aggregated columns]。这似乎仍然是错误的 这将使代码冗长,维护起来也很困难。这让我相信,必须有一个更简洁、更易于维护的解决方案 有没有人有更好的方法来解决这个问题?是否可能将聚合度量值分离

在这篇文章的前言中,我已经看过了类似的话题,我不相信它回答了我面临的问题

我正在使用一个引用135列的SELECT语句,有人要求该语句包含一个聚合函数

这将导致错误,因为代码末尾没有GROUPBY子句

建议的解决方案是按-1,2,3,4..133134135进行分组[OMmiting The aggregated columns]。这似乎仍然是错误的

这将使代码冗长,维护起来也很困难。这让我相信,必须有一个更简洁、更易于维护的解决方案

有没有人有更好的方法来解决这个问题?是否可能将聚合度量值分离到另一个表中


非常感谢您的任何输入。

如果您希望对每行进行聚合度量,请使用窗口函数。例如:

select . . .,
       count(*) as total_rows,
       sum(amount) over (partition by ?) as total_amount_per_whatever
from . . . 

可能是选择列表中的相关子查询?谢谢,Jarlh。让我谷歌一下谢谢,戈登。事实上,我最终将度量值分离到另一个表中,因为声明变得太复杂了。然而,这是需要记住的!