使用特定行中的ID对行进行分组

理查德

我一直在努力解决这个问题,所以这里的一些帮助将不胜感激。

基本上,我有一个数据库表,例如:

在此处输入图片说明

我正在尝试获得以下结果:

Id     | Name  | Total
------------------------
590954 | ABC   | 825.00

因此,我需要该组(即ABC)中具有最大值的行中的ID,名称和值的总和(对于该组-ABC)。

还有更多名称不同的行。

提前致谢。

编辑(添加一些SQL以提供帮助):

declare     @Test       table
    (       Id          int
    ,       Name        nvarchar(20)
    ,       Value       decimal(10,2)
    )

insert into @Test values (590954, 'ABC', 525)
insert into @Test values (592332, 'ABC', 300)
insert into @Test values (1, 'DEF', 100)
insert into @Test values (2, 'DEF', 250)

select * from @Test

我想要得到的结果是以下两行:

Id     | Name  | Total
------------------------
590954 | ABC   | 825.00
2      | DEF   | 350.00

请帮助我编写所需的查询。

博士 苏曼·卡比尔|

SQL演示

您可以尝试以下查询:

select t1.id, t1.name, t2.Total
from table1 t1
join(SELECT name, MAX(Value) as max_Value, SUM(Value) as Total
    FROM Table1 GROUP BY name) t2 
    on t1.name=t2.name and t1.Value=t2.max_Value

了解查询:别名为的派生表t2包含每个组的字段name,maxValue和sum Value然后,在table1这种情况下将t1.name=t2.name and t1.Value=t2.max_Value与主表连接,该条件确认仅选择具有Value每个组的最大值的记录

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章