我正在使用麻烦的
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
在这种情况下,我想在“值”字段上使用MAX消除由标识符类别的复合键定义的重复项.这让我有以下几点:
identifier category value 1 a 80 1 b 80 1 c 40 2 a 20 2 b 40
然后我想基于标识符SUM“值”.
这是我知道我需要什么的另一个例子,但是,我不确定如何在单个SQL语句中执行此操作.我可以使用临时表,然后对其运行聚合(SUM)查询.但是,我想尝试用一个声明来解决所有问题.
最佳答案 获取每个标识符类别中的Max值
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