Sql server 通过sequelize.fn使用Over子句

Sql server 通过sequelize.fn使用Over子句,sql-server,node.js,aggregate-functions,sequelize.js,Sql Server,Node.js,Aggregate Functions,Sequelize.js,我正在尝试使用sequelize.fn找出使用“”的最佳方法 我的原始查询可能如下所示: SELECT Distinct [DataPoint], MIN([Value]) OVER (PARTITION BY [DataPoint]) AS [Value MIN], MAX([Value]) OVER (PARTITION BY [DataPoint]) AS [Value MAX], AVG([Value]) OVER (PARTITION BY [DataP

我正在尝试使用
sequelize.fn
找出使用“”的最佳方法

我的原始查询可能如下所示:

SELECT
    Distinct [DataPoint],
    MIN([Value]) OVER (PARTITION BY [DataPoint]) AS [Value MIN],
    MAX([Value]) OVER (PARTITION BY [DataPoint]) AS [Value MAX],
    AVG([Value]) OVER (PARTITION BY [DataPoint]) AS [Value AVG],
    PERCENTILE_DISC(0.5)
        WITHIN GROUP 
        (ORDER BY [Value])
        OVER 
        (PARTITION BY [DataPoint])
        AS MedianCont
    FROM [Table] AS [Table]
    WHERE ([DataPoint]
        IN (
            ...
        )
    )
对于
MIN
MAX
AVG
,我可以构建一个对象数组,如下所示:
[sequelize.fn(类型,sequelize.col('table.col'),'colName']
与我的独特数据点的分组对象相结合

但是,如果我还包括
PERCENTILE\u DISC
语法,我需要使用一个窗口函数,否则我会得到一个
未包含在聚合函数或GROUP BY子句中的
错误


不确定sequelize方法是否允许我以这种方式构造查询(除了编写原始查询)。如果我确实需要原始查询,是否可以只对
PERCENTILE\u DISC
部分进行原始查询?

我猜可能是全有或全无。如果您可以访问数据库本身,您是否可以使用所需的逻辑编写一个存储过程,而不是在节点中构造它?我猜它可能是全有或全无的。如果您可以访问数据库本身,是否可以使用所需的逻辑编写存储过程,而不是在节点中构造它?