我有类似于以下语句的内容,该语句适用于SQL Server
-- Uses AdventureWorks
SELECT STDEV(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;
使用Crystal Report,我们希望该报表同时支持SQL Server和Oracle。因此,我们需要这一声明对两者都起作用。为了避免这种情况,我们一直在用它们的另一个命名函数包装函数。我无法为STDEV(SQL Server(获得正确的Aggregate函数以进入STDEV。
有什么想法可以让它发挥作用吗?
STDEV在Oracle中工作,并提供将使用STDEV聚合函数返回的答案。
Oracle具有STDDEV分析函数,具有字母差,可以像一样使用
WITH t(year,month,SalesAmountQuota) AS
(
SELECT 2022,1,1000 FROM dual UNION ALL
SELECT 2022,2,1500 FROM dual UNION ALL
SELECT 2022,3,2000 FROM dual UNION ALL
SELECT 2022,4,2500 FROM dual
)
SELECT STDDEV(SalesAmountQuota) OVER (ORDER BY year, month) AS StdDeviation
FROM t
Oracle中的演示
SQL Server中的演示