【发布时间】:2014-10-18 04:12:33
【问题描述】:
我有一个包含以下列的测试表:
Transaction_date date
account_number Number(10)
transaction_ammount number (10,5)
account_number transaction_amount transaction date
111 10000 10-OCT-2014
111 20000 10-OCT-2014
111 50000 08-OCT-2014
111 30000 06-OCT-2014
222 60000 10-OCT-2014
222 50000 10-OCT-2014
222 30000 08-OCT-2014
我需要根据以下公式计算评分:
rating=((1 天的总交易量)-(过去 10 个日历日的平均总价值))/ 过去 10 天的标准偏差 (STDDEV)。
我使用了 STDDEV 函数来计算它。但是它给了我不正确的输出。
account_number 111 需要的是:
第 10 个 OCT 的排名=111(过去 10 天)的所有金额的第 10 个 OCt-Avg 的 SUM/帐户 111 的 STDEV。
10 月 10 日的排名=(10000+20000)-((10000+2000+50000+30000)/10)/STDEV(10000,2000,50000,30000)
请建议我如何在 sql 查询的帮助下实现这一点。谢谢!
【问题讨论】:
-
stddev() 的输出究竟以何种方式不正确?你知道你的错别字吗? (测试表中有 20000 个,但 10 月 10 日在您的排名中的两个不同位置只有 2000 个。)
-
我必须同意@MikeSherrill'CatRecall',如果我们看不到您正在执行的代码并且考虑到您的逻辑存在缺陷,我不得不假设您做错了。
标签: oracle