gpt4 book ai didi

database - 没有迭代过程和有效值硬编码的 Oracle SQL 中的 Pareto 分析

转载 作者:搜寻专家 更新时间:2023-10-30 23:18:36 25 4
gpt4 key购买 nike

假设,您有表 T(C1, C2, C3),并且 C1 有一组有效值,V={v1,v2,v3...}。现在,无需诉诸游标 - 即,完全停留在基于集合的逻辑域中,您想要查看类型为 v1 的行所占的比例,类型为 v2 的行所占的比例,以及类型为类型的行所占的比例v3 等等 - 无需为每个有效值编写 case if。因此,对于 C1 中的每个不同的有效值,在结果集中显示类型 V 行的排序频率和相应的值(即 v1、v2、v3...)。 PL/SQL 中的查询是什么?

编辑:计数很简单:

select count(*) count, c1 from T group by c1 order by count

但是如果你想显示频率比例怎么办?

最佳答案

如果我理解你的话,听起来你只是想要

SELECT c1, count(*) cnt
FROM t
GROUP BY c1
ORDER BY count(*) desc

这将返回每个值的排序频率。如果您正在寻找比率,您可以添加 RATIO_TO_REPORT 分析函数

SELECT c1, 
cnt,
ratio_to_report(cnt) over () fraction
FROM (
SELECT c1, count(*) cnt
FROM t
GROUP BY c1 )
ORDER BY cnt desc

关于database - 没有迭代过程和有效值硬编码的 Oracle SQL 中的 Pareto 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com