我正在处理一个 SQL 查询语句。查询大概如下:
Select
a.field1,
b.field2,
c.field3,
c.field4,
b.filed5,
a.field6,
d.field7
from
a
Inner join b on a.field1 = b.field1
right join c on b.field2 = c.field3
left join d on d.filed3 = a.field1
where some conditions;
上述代码的输出结果可能类似于下面这样:
field1 | field2 | field3 | field4 | field5 | field6 | field7
--------------------------------------------------------------
name | value1 | other1 | 1 | diff | new | 100
name1 | value2 | other2 | 1 | diff1 | new1 | 100
name2 | value3 | other3 | 2 | diff2 | new2 | 100
所以我需要在结果中添加一个新列,它根据field4
的值(如果它们相同)来总结field7
。
在SQL中是否可以做到这一点?我尝试在这里使用Group by field 4
,但是我得到一个错误,说field1
应该被用于group by。因此,我无法如预期的那样获得结果。
期望结果:
field1 | field2 | field3 | field4 | field5 | field6 | field7
--------------------------------------------------------------
name | value1 | other1 | 1 | diff | new | 200
some | value3 | other3 | 2 | diff2 | new2 | 100
基本上,我想根据条件删除一列并对最后一个字段求和。
任何建议都有帮助。
field1
到field6
的值是否都相等?如果不是,您想保留哪个记录作为分组? - GMB'some'
。 - GMB