有四个表:
这样的列T_SALES
有像CUST_KEY, ITEM_KEY, SALE_DATE, SALES_DLR_SALES_QTY, ORDER_QTY.
这样的列T_CUST
有像CUST_KEY, CUST_NUM, PEER_GRP_ID
这样的列T_PEER_GRP
有像PEER_GRP_ID, PEER_GRP_DESC, PRNT_PEER_GRP_ID
这样的列T_PRNT_PEEER
有像PRNT_PEER_GRP_ID, PRNT_PEER_DESC
现在对于上面的表格,我需要根据父对等中对等组的计算 fillrate = SALES_QTY/ORDER_QTY * 100
生成客户的百分位排名。
有人可以帮忙吗?
最佳答案
您可以使用分析函数PERCENT_RANK()
来计算百分位排名,如下所示:
SELECT
t_s.cust_key,
t_c.cust_num,
PERCENT_RANK() OVER (ORDER BY (t_s.SALES_DLR_SALES_QTY / ORDER_QTY) DESC) as pr
FROM t_sales t_s
INNER JOIN t_cust t_c ON t_s.cust_key = t_c.cust_key
ORDER BY pr;
引用:
关于sql - 如何根据计算获得百分位排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529858/