具有两个表的Oracle SQL STATS_模式

具有两个表的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 -

我在图中列出了表格。我需要在销售融资表中显示最常用融资计划的机构和贷款类型。我曾尝试使用stats_mode函数,但未能使其正常工作。我应该只显示最常用的融资计划,我不断得到3显示。这是一张桌子的图片

我的图像可能不起作用,因此以下是表格:

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
是一个表别名,您需要熟悉它。