我必须根据A列和D列的不同值生成B列和C列的总和。
column A | column B | column C | column D
------------------------------------------
A1 | 23 | 33 | unique1
A1 | 73 | 44 | unique2
A1 | 99 | 87 | unique3
A1 | 23 | 33 | unique1
A1 | 56 | 35 | unique4
A1 | 73 | 44 | unique2
现在我必须对A列(A1)的B列和C列数据进行求和,但跳过第4行和第6行,因为D列是重复的。
我使用了group by和SUM但是获得了4行。我需要所有的总和" B"和" C"所有4条记录。
答案 0 :(得分:1)
尝试此查询:
with cte as (
select A, B, C
from table1
group by A, B, C, D
)
select A, sum(B) as sumB, sum(C) as sumC
from cte
group by A
答案 1 :(得分:1)
根据您的comment
DISTINCT给了我多行,我想要的输出是 - (23 + 33 + 73 + 44 + 99 + 87 + 56 + 35)仅限一行
尝试以下查询:
SELECT
SUM(B + C) totalSum
FROM
(
SELECT DISTINCT
A,
B,
C,
D
FROM your_table
) t
中尝试此查询
根据mysql文档:
DISTINCT指定从结果集中删除重复的行。
示例输入:
示例输出: