SQL Server Management Studio - 计算正确的总数

SQL Server Management Studio - Calculating Correct Total

我在 SQL 服务器 table 中有一列的值如下:

ID      Value  Item#
-------------------
101     10     Apples
102     20     Apples
102-01  22     Apples
102-02  23     Apples
102-03  21     Apples
103     20     Apples
103-01  15     Apples 

如何编写查询以获得正确的值总计?

对于给定的示例,仅应采用以下值:101102-03103-01

正确的总和应该是46

我尝试在 where 子句中使用 like 和 contains 关键字。它没有帮助。 Group by 和 Max 弄乱了总数。

并且仅使用 sum(values) 就给出了所有错误的总和

据我了解你的问题,你想按其 id 的前缀(前 3 个字符)对记录进行分组,并将每组具有最高后缀的记录的值相加(如果有超过一条记录)。

您可以使用row_number(),然后过滤和求和:

select sum(value) total_value 
from (
    select 
        t.*,
        row_number() over(partition by left(id, 3) order by id desc) rn
    from mytable t
) t
where rn = 1