我一直在努力解决这个问题,所以这里的一些帮助将不胜感激。
基本上,我有一个数据库表,例如:
我正在尝试获得以下结果:
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
请帮助我编写所需的查询。
您可以尝试以下查询:
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] 删除。
我来说两句