SQL Percentile函数丢失了吗?

时间:2016-01-15 18:55:30

标签: 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       11          2
5                   3       300         2
6                   3       10          2
...                 ...     ...         ...

我想在SQL中计算由Client_ID分组的平均值(Transaction_Amount),std(Transaction_Amount)和某些百分位数(交易金额)。但看起来,即使假设百分位数与标准差非常相似,SQL也不能用简单的语句来做:

SELECT
    mean(Transaction_Amount),
    std(Transaction_Amount),
    percentile(Transaction_Amount) 
FROM
    myTable
GROUP BY
    Client_ID, Month

还是可以吗?

它变得更糟,因为除了Client_ID之外,我还需要按月分组。

非常感谢! 斯文

1 个答案:

答案 0 :(得分:0)

我确定Oracle 可以进行您想要的计算。我只是不知道它们是什么。您指定要按ClientId分组的内容。但是,您的示例查询在GROUP BY中有两个键。

您想要查看的一些功能是:

  • AVG()
  • STDDEV()
  • PERCENT_RANK()

如果没有样本数据和期望的结果(或者您正在尝试计算的内容的非常明确的解释),我就无法汇总查询。