发现难以获得最大价值

Posted

技术标签:

【中文标题】发现难以获得最大价值【英文标题】:Finding Difficulty in getting maximum value 【发布时间】:2021-06-16 11:00:34 【问题描述】:

V_ABC(它是一个视图)

ID        value   interest  Reference Code  

 1           5       Fixed             2
 1           2       Variable          4
 2           6       Variable          5
 2           2       Fixed             1
 3           4       Fixed             5
 3           1       Variable          4

我需要这个输出。

ID    value     Interest      Reference Code
1      7           Fixed            4
2      8           Variable         5
3      5           Fixed            5

我有一个视图 V_ABC。我正在尝试添加很好的价值并获得最大参考代码。 在顶部,我试图获得基于最大值但到目前为止失败的兴趣类型。例如在视图中,

ID 1 的最大值为 5,需要固定兴趣 ID 2 最大值 6 和兴趣应该是可变的 ID 3 最大值 4 和利息应该是固定的。

我试图引起兴趣。这是我的脚本。我正在使用 SQL Server 2016

Select id,sum(value),Max(ReferenceCode)
(

Select id,value,

first_value(Interest) over (Partition by value Order by value desc) as Interest,Referencecode  From V_ABC

)dd

group by id

【问题讨论】:

【参考方案1】:

可能最简单的方法是使用row_number() 和条件聚合:

select id, sum(value),
       max(case when seqnum = 1 then interest end),
       max(case when seqnum = 1 then reference_code end)
from (select t.*,
             row_number() over (partition by id order by value desc) as seqnum
      from t
     ) t
group by id;

如果你想花哨,可以使用select distinct和窗口函数:

select distinct id,
       sum(value) over (partition by id),
       first_value(interest) over (partition by id order by value desc),
       first_value(reference_code) over (partition by id order by value desc)
from t;

【讨论】:

以上是关于发现难以获得最大价值的主要内容,如果未能解决你的问题,请参考以下文章

如何从Laravel 5.2中的textarea获得价值?

javascript 获得arr的最大价值

从核心数据关系中获得最大价值

钢铁企业以撮合模式切入B2B平台,汇聚势能实现价值最大化

数商云:钢铁企业以撮合模式切入B2B平台,汇聚势能实现价值最大化

动态规划完全背包问题