缺少SQL百分位函数?
这本教科书的例子对我来说是个谜。我们只是:缺少SQL百分位函数?,sql,oracle,function,Sql,Oracle,Function,这本教科书的例子对我来说是个谜。我们只是: Transaction_ID (primary key), Client_ID, Transaction_Amount, Month 1 1 500 1 2 1 1000 1 3 1 10 2 4 2
Transaction_ID (primary key), Client_ID, Transaction_Amount, Month
1 1 500 1
2 1 1000 1
3 1 10 2
4 2 11 2
5 3 300 2
6 3 10 2
... ... ... ...
我想在SQL中计算平均值(交易金额)、std(交易金额)和按客户ID分组的某个百分位数(交易金额)。但似乎,即使百分位数的计算与标准偏差非常相似,SQL也无法使用以下简单语句:
SELECT
mean(Transaction_Amount),
std(Transaction_Amount),
percentile(Transaction_Amount)
FROM
myTable
GROUP BY
Client_ID, Month
或者可以吗
更糟糕的是,除了客户ID外,我还需要按月分组
非常感谢!
Sven我相信Oracle可以完成您想要的计算。我只是不知道它们是什么。您指定要按ClientId
对某些内容进行分组。但是,您的示例查询在GROUP BY
中有两个键
您要查看的一些功能包括:
AVG()
STDDEV()
PERCENT\u RANK()
如果没有样本数据和所需的结果(或对您试图计算的内容的非常清楚的解释),我无法组合查询。这在很大程度上取决于数据库。请用您正在使用的数据库标记您的问题。Gordon Lightfoot的意思是,您使用的是SQL Server、Oracle、MongoDB、MagicPlatypus还是什么?至少,如果SQL Server看到更糟的情况,则有不止一种类型的百分位数。如果您的数据库引擎的功能不能满足您的业务需求(我也遇到过这种情况),您需要一个不同的计划。我被迫使用SAS proc sql…..我可以告诉您。这是SAS BI Enterprise 5.1。您正在寻找该功能吗?