sql – Pivot命令在多参数CLR聚合函数失败…想法为什么?

我在CLR中编写了几个AGGREGATE函数

abj.median

abj.percentile

一个有趣的问题.除了结果计算方式的微小差异外,结构中的函数非常相似,PERCENTILE需要2个参数,而中位数只有1个.

两个函数的通用参数是字段名称.百分位函数还带有一个值来确定哪个百分位数(10,75,90等…..)

这个命令工作得很好…..

;
WITH p1 AS (

SELECT WAITTIMES_DAY / 7.0 AS waitWeeks, 

abj.fyq(surg_sx_date) as fiscalYear, 

SURG_SITE_ZONE

FROM dbo.Surgery
)

SELECT *

FROM p1 p

PIVOT (abj.median(waitweeks) 

FOR fiscalYear IN ( [2013/14-Q1], [2013/14-Q2], [2013/14-Q3], [2013/14-Q4] )) b

此命令失败,INCORRECT SYNTAX NEAR’90’.期待’.’,ID或QUOTED_ID.

;
WITH p1 AS (

SELECT WAITTIMES_DAY / 7.0 AS waitWeeks, 

abj.fyq(surg_sx_date) as fiscalYear, 

SURG_SITE_ZONE

FROM dbo.Surgery
)
SELECT *

FROM p1 p

PIVOT (abj.percentile(waitweeks,90) 

FOR fiscalYear IN ( [2013/14-Q1], [2013/14-Q2], [2013/14-Q3], [2013/14-Q4] )) b

有没有人之前遇到过这个Wierdness,他们是如何修复的(除了用一个参数分解和编写PERCENTILE函数,第二个更改为默认值为90)

谢谢

斯文

最佳答案
使用CLR功能时,请按原样使用它们.如果函数abj.median被编写为仅使用一个参数.它会像这样工作,只有这样.如果您希望中位数能够使用2个参数,您需要请求此函数的开发人员为您重写它.

转载注明原文:sql – Pivot命令在多参数CLR聚合函数失败…想法为什么? - 代码日志