Requête SQL avec distinct et somme
J'ai le texte suivant medleys
table qui combine colors
fruits
et ratings
:
[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
Je suis en train d'écrire un ANSI-conforme de la requête SQL qui permet de combiner chaque unique/distinct color
-fruit
pair et la somme de chaque paire individuelle de rating
valeurs. Ainsi, si l'exécution de la requête sur la table ci-dessus, il serait de produire le résultat suivant:
[query]
color | fruit | sum
===========================
red apple 35
blue pear 14
blue kiwi 3
green apple 12
purple kiwi 55
Ainsi, la requête voit, il y a deux red
-apple
paires dans la table, et cela crée donc un résultat pour le red
-apple
paire, et ajoute jusqu'à leurs constituants ratings
(25 + 10 = 35), etc.
Je suis sûr que j'ai besoin de faire un select pour distinctes couleur/fruits de valeurs, mais vous ne savez pas comment calculer les cotes de au même "niveau/scope":
SELECT
distinct(color, fruit), sum(rating)
FROM
medleys
Ordre n'a pas d'importance. color
et fruit
est de type VARCHAR(50)s et rating
est de type INT. Merci à l'avance!
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Distinct est utilisé pour sélectionner des éléments distincts, rien de plus, alors que vous voulez agréger et pour cela vous avez besoin
GROUP BY
et les fonctions d'agrégation (SUM
).Vous n'avez pas besoin
distinct
à tous. Vous avez besoingroup by
:Je vais répondre, parce que je vois cette erreur se produit. En général, vous n'avez pas besoin
select distinct
à tous en SQL. Vous pouvez toujours utiliser ungroup by
à la place.Distinct
devraient être introduites aprèsgroup by
comme une pratique à court de main.SQL Violon Exemple
Cela devrait répondre à votre question: