代码之家  ›  专栏  ›  技术社区  ›  MHeath

按其他字段分组的最接近零的值

  •  2
  • MHeath  · 技术社区  · 8 年前

    我需要编写一个查询,该查询将为我提供最接近零的字段值。我发现在这个论坛上提交的其他内容没有考虑表中的其他字段。我需要的是在其他字段上分组的最接近零的值,以便每组数据都有一个最接近零的值。这意味着我可以有20行数据,但最接近零的值基于其他字段。我展示的查询示例基于我在论坛中找到的内容: How to find the value closest to zero using SQL Server . 我更改了WHERE子句,以便可以基于其他字段进行分组。

    SELECT
    Field1,
    Field2,
    Field3,
    Value_I_Need_Closest_to_0
    
    FROM Table
    
    WHERE exists(select Field1
                      ,Field2
                      ,Field3
                      ,min(abs(Value_I_Need_Closest_to_0))
                from Table
                group by Field1
                      ,Field2
                      ,Field3)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Lukasz Szozda    8 年前

    如果我理解正确,您需要:

    select *
    , min(abs(Value_I_Need_Closest_to_0)) over(partition by field1,field2, field3)
    FROM tab