SQL查询具有鲜明和sum(SQL query with distinct and sum)

2019-07-22 01:39发布

我有以下medleys表,结合colorsfruitsratings

[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查询,将结合每一个独特/不同的color - fruit对和总结每一对的个人rating值。 因此,如果你跑表上面的查询会产生以下结果集:

[query]
color   |   fruit   |   sum
===========================
red         apple       35
blue        pear        14
blue        kiwi        3
green       apple       12
purple      kiwi        55

因此,查询看到有两个red - apple在表中对,并且因此它创建一个结果为red - apple对,并且增加了它们的组成ratings (25 + 10 = 35)等。

我相信,我需要做一个选择的独特的颜色/果值,但不知道如何在相同的“水平/范围”聚集评级:

SELECT
    distinct(color, fruit), sum(rating)
FROM
    medleys

顺序并不重要。 colorfruit是VARCHAR(50)S和rating是INT。 提前致谢!

Answer 1:

SELECT color, fruit, sum(rating)
FROM medleys
GROUP BY color, fruit

不同来选择不同的元素,仅此而已,而你想要聚合以及您需要GROUP BY和聚合函数( SUM )。



Answer 2:

你并不需要distinct的。 您需要group by

select color, fruit, sum(rating)
from medleys
group by color, fruit

我回答,因为我看到这个错误发生。 一般情况下,你不需要select distinct的所有SQL。 你总是可以使用group by来代替。 Distinct应之后引入group by作为一种方便的短手。



Answer 3:

SELECT `color`,`fruit`,SUM(`rating`)
FROM Medleys
GROUP BY `color`,`fruit`

SQL小提琴例



Answer 4:

这应该回答你的问题:

 SELECT color, fruit, sum(rating) as [sum] FROM medleys GROUP BY color, fruit ORDER BY color 



文章来源: SQL query with distinct and sum