SQL Comparaison des valeurs dans les deux lignes
J'ai les données suivantes de vente pour les différentes catégories d'éléments:
category year salesVolume
1 2002 45
1 2003 47
2 2002 789
2 2003 908
3 2002 333
3 2003 123
41 2002 111
41 2003 90
Maintenant je veux comparer le volume des ventes de l'année 2002 à l'année 2003, dans la catégorie sage,
et écrire les résultats comme suit:
category salesIncreasing?
1 TRUE
2 TRUE
3 FALSE
41 FALSE
Est-il possible de le faire en SQL. Si donc s'il vous plaît laissez-moi savoir. En fait, je suis à l'aide de l'Impala SQL. Merci.
OriginalL'auteur user3282777 | 2014-08-03
Vous devez vous connecter pour publier un commentaire.
L'idée est d'avoir une seule table comme un résultat qui vous permettent de comparer et de projet, les ventes en nouvelles données. Pour ce faire, vous rejoignez la table avec elle-même, et que vous utilisez deux restrictions dans la clause where.
OriginalL'auteur David Khuu
Vous pouvez faire cette conditionnel à l'agrégation ainsi que l'aide d'une jointure:
L'avantage de cette approche sur une
join
est qu'il ne gère tous les produits, même ceux qui n'apparaissent pas dans les deux ans.Fixe. J'ai accidentellement laissé de côté l'
group by
.Eh bien, j'ai ajouté une clause Group by à la fin: 'groupe par fd.produit " et il a résolu le problème. Excellent code comme il s'adresse à des valeurs null dans une année. Merci.
OriginalL'auteur Gordon Linoff