猿问

遍历列表以查找对象是相等的

我有一个结果集,如下所示,我使用左连接和其他条件返回该结果集。


ID1 - table1 (unique)

ID2 - table2 (unique)

type - table2 

AMt3 - table2

我的最终结果集是:


ID1       ID2   Type    AMT


1835748   21987   9     4


1835748   12898   26    5


1835748   21986   26    5


2242186   21421   1    11


2242186   21422   1    20


2242186   21988   1    30

现在我查看了这些数据并总结了 type 和 ID1 相同的数量。


在上面的例子中,第 1 行 - 保持在第 2+3 行 - 总和相加并返回第 4+5+6 行 - 返回总和


所以最后我将只有 3 条记录需要发送到另一个系统。


是否可以使用查询来实现这一点?到目前为止,我已经给出了简单的表示,查询更复杂。


或者如果这可以完成我的java代码?我如何实现这一目标?


人到中年有点甜
浏览 132回答 2
2回答

子衿沉夜

您可以在 SQL 中做到这一点。使用GROUP BY和MAX()。SELECT T1.ID1,&nbsp; &nbsp; &nbsp; &nbsp;T2.TYPE,&nbsp; &nbsp; &nbsp; &nbsp;MAX(T2.ID2) ID2,&nbsp; &nbsp; &nbsp; &nbsp;SUM(T2.AMT) AMT&nbsp; &nbsp; &nbsp; &nbsp;FROM <your join>&nbsp; &nbsp; &nbsp; &nbsp;GROUP BY T1.ID1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; T2.TYPE;替换<your join>为您的连接操作。并且可能更改MAX()为MIN(),如果您最不喜欢ID2,而不是最喜欢的。或者把它放在一起。

温温酱

您可以在 SQL 中做到这一点。使用 GROUP BY 和 MAX()。SELECT T1.ID1, T2.TYPE, MAX(T2.ID2) ID2, SUM(T2.AMT) AMT from GROUP BY T1.ID1, T2.TYPE;&nbsp;替换为您的连接操作。并且可能将 MAX() 更改为 MIN(),如果您喜欢最小的 ID2,而不是最大的。或者把它放在一起。
随时随地看视频慕课网APP

相关分类

Java
我要回答