我具有以下各种类别的商品销售数据:
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
现在,我想将2002年和2003年的销售量进行分类比较,
并将结果写为:
category salesIncreasing?
1 TRUE
2 TRUE
3 FALSE
41 FALSE
是否有可能在SQL中做到这一点。如果是这样,请告诉我。实际上,我正在使用Impala SQL。谢谢。
最佳答案
SELECT
a.category,
CASE WHEN a.salesVolumes < b.salesVolumes THEN 'TRUE' ELSE 'FALSE' END AS salesIncreasing
FROM MyTable a
INNER JOIN MyTable b ON a.category = b.category
WHERE a.year = 2002
AND b.year = 2003
这样做的结果是只有一张表,让您比较销售量并将其投影到新数据中。为此,您将表与自身连接在一起,并在WHERE子句中使用了两个限制。
关于sql - SQL比较两行中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25103485/