我有一个结果集,如下所示,我使用左连接和其他条件返回该结果集。ID1 - table1 (unique)ID2 - table2 (unique)type - table2 AMt3 - table2我的最终结果集是:ID1 ID2 Type AMT1835748 21987 9 41835748 12898 26 51835748 21986 26 52242186 21421 1 112242186 21422 1 202242186 21988 1 30现在我查看了这些数据并总结了 type 和 ID1 相同的数量。在上面的例子中,第 1 行 - 保持在第 2+3 行 - 总和相加并返回第 4+5+6 行 - 返回总和所以最后我将只有 3 条记录需要发送到另一个系统。是否可以使用查询来实现这一点?到目前为止,我已经给出了简单的表示,查询更复杂。或者如果这可以完成我的java代码?我如何实现这一目标?
2 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
您可以在 SQL 中做到这一点。使用GROUP BY和MAX()。
SELECT T1.ID1,
T2.TYPE,
MAX(T2.ID2) ID2,
SUM(T2.AMT) AMT
FROM <your join>
GROUP BY T1.ID1,
T2.TYPE;
替换<your join>为您的连接操作。并且可能更改MAX()为MIN(),如果您最不喜欢ID2,而不是最喜欢的。或者把它放在一起。
温温酱
TA贡献1752条经验 获得超4个赞
您可以在 SQL 中做到这一点。使用 GROUP BY 和 MAX()。
SELECT T1.ID1, T2.TYPE, MAX(T2.ID2) ID2, SUM(T2.AMT) AMT from GROUP BY T1.ID1, T2.TYPE; 替换为您的连接操作。并且可能将 MAX() 更改为 MIN(),如果您喜欢最小的 ID2,而不是最大的。或者把它放在一起。
添加回答
举报
0/150
提交
取消