具有两个表的Oracle SQL STATS_模式
我在图中列出了表格。我需要在销售融资表中显示最常用融资计划的机构和贷款类型。我曾尝试使用stats_mode函数,但未能使其正常工作。我应该只显示最常用的融资计划,我不断得到3显示。这是一张桌子的图片 我的图像可能不起作用,因此以下是表格:具有两个表的Oracle SQL STATS_模式,sql,oracle,Sql,Oracle,我在图中列出了表格。我需要在销售融资表中显示最常用融资计划的机构和贷款类型。我曾尝试使用stats_mode函数,但未能使其正常工作。我应该只显示最常用的融资计划,我不断得到3显示。这是一张桌子的图片 我的图像可能不起作用,因此以下是表格: financing_plan id institution loan_type sale_financings id plan_id ------> foreign key linking to -
financing_plan
id
institution
loan_type
sale_financings
id
plan_id ------> foreign key linking to - financing_plan.id
我在查询生成器中尝试了几种不同的方法,但无法使其正常工作
这里有一个:
SELECT
financing_plans.institution,
financing_plans.loan_type,
STATS_MODE(sale_financings.plan_id) AS stats_mode_plan_id
FROM
financing_plans
INNER JOIN sale_financings ON financing_plans.id =
sale_financings.plan_id
GROUP BY
financing_plans.institution,
financing_plans.loan_type
另一个:
SELECT
financing_plans.institution,
financing_plans.loan_type,
STATS_MODE(sale_financings.plan_id) AS stats_mode_plan_id
FROM
financing_plans
INNER JOIN sale_financings ON financing_plans.id =
sale_financings.plan_id
GROUP BY
financing_plans.institution,
financing_plans.loan_type
HAVING
STATS_MODE(sale_financings.plan_id) = sale_financings.plan_id
对每个计划id的使用情况进行计数,然后按计数(降序)对这些计划id进行排序(使用
densite\u rank()
),以显示“top”和“equal top”
select
fp.institution, fp.loan_type, s.plan_count
from financing_plan fp
inner join (
select plan_id, plan_count, dense_rank() over(order by plan_count DESC) as rnk
from (
select plan_id, count(id) plan_count
from sale_financings
Group by plan_id
)
) s on fp.id = s.plan_id and s.rnk = 1
order by
fp.institution, fp.loan_type
;
请出示您尝试过的任何查询。“最常用的融资计划”如果有两种或更多类型的“同等顶部”会发生什么?谢谢,这帮助了很多,尽管我不得不解释fp是什么。我以为你在缩写它,所以你不必把它打印出来。我不知道你给它起了个名字,以便以后在脚本中更容易使用。我遇到的唯一问题是,我需要在SaleHyFangChans.PrimuId中添加一个在内部连接中间的SaleEnFixIn中的组。谢谢。我错过了必要的
groupby
条款。很抱歉我现在把它加在上面了fp
是一个表别名,您需要熟悉它。