我有以下混合的表,结合了颜色,水果和评分:
[medleys] medley_id | color | fruit | rating ============================================== 1 red apple 25 2 blue pear 5 3 green apple 12 4 red apple 10 5 purple kiwi 5 6 purple kiwi 50 7 blue kiwi 3 8 blue pear 9
我正在尝试编写一个ANSI兼容的SQL查询,它将组合每个独特的/不同的颜色 – 水果对,并且对每个对的个人评分值进行总和.因此,如果您在上表中运行查询,则会产生以下结果集:
[query] color | fruit | sum =========================== red apple 35 blue pear 14 blue kiwi 3 green apple 12 purple kiwi 55
因此,查询看到表中有两个红苹果对,因此它为红苹果对创建了一个结果,并将其组成评级(25 10 = 35)等等加起来.
我相信我需要选择不同的颜色/水果值,但不能确定如何在相同的“水平/范围”下聚合评级:
SELECT distinct(color,fruit),sum(rating) FROM medleys
订单没关系.颜色和水果是VARCHAR(50),评级为INT.提前致谢!
解决方法
SELECT color,fruit,sum(rating) FROM medleys GROUP BY color,fruit
Distinct用于选择不同的元素,而不是您想要聚合,并且您需要GROUP BY和聚合函数(SUM).