人到中年有點(diǎn)甜
2021-08-19 16:04:37
我有一個(gè)結(jié)果集,如下所示,我使用左連接和其他條件返回該結(jié)果集。ID1 - table1 (unique)ID2 - table2 (unique)type - table2 AMt3 - table2我的最終結(jié)果集是:ID1 ID2 Type AMT1835748 21987 9 41835748 12898 26 51835748 21986 26 52242186 21421 1 112242186 21422 1 202242186 21988 1 30現(xiàn)在我查看了這些數(shù)據(jù)并總結(jié)了 type 和 ID1 相同的數(shù)量。在上面的例子中,第 1 行 - 保持在第 2+3 行 - 總和相加并返回第 4+5+6 行 - 返回總和所以最后我將只有 3 條記錄需要發(fā)送到另一個(gè)系統(tǒng)。是否可以使用查詢來(lái)實(shí)現(xiàn)這一點(diǎn)?到目前為止,我已經(jīng)給出了簡(jiǎn)單的表示,查詢更復(fù)雜?;蛘呷绻@可以完成我的java代碼?我如何實(shí)現(xiàn)這一目標(biāo)?
2 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以在 SQL 中做到這一點(diǎn)。使用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,而不是最喜歡的?;蛘甙阉旁谝黄稹?/p>

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在 SQL 中做到這一點(diǎn)。使用 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,而不是最大的?;蛘甙阉旁谝黄?。
添加回答
舉報(bào)
0/150
提交
取消