我正在使用麻烦的MySQL数据表。我有一组记录,但是,记录是重复的。我需要适当地总结不同的价值观。这是情况......
鉴于数据
identifier category value 1 a 40 1 a 20 1 b 80 1 c 40 1 a 80 2 a 20 2 b 40
我想提出的是以下
identifier category 1 200 2 60
在这种情况下,我想在“value”字段上使用MAX消除由标识符+类别的复合键定义的重复项。这让我有以下几点:
identifier category value 1 a 80 1 b 80 1 c 40 2 a 20 2 b 40
然后我想根据标识符来“SUM”。
这是我知道我需要什么的另一个例子,但是,我不确定如何在单个SQL语句中执行此操作。我可以使用临时表,然后对其运行聚合(SUM)查询。但是,我想尝试用一个声明来解决这个问题。
答案 0 :(得分:2)
要在每个Max
identifier + category
值
select identifier,category,max(value)
from table1
group by identifier,category;
要让SUM
在上面的结果
select identifier,sum(value) as value
from
(
select identifier,category,max(value) as value
from table1
group by identifier,category
) a
group by identifier