我具有以下各种类别的商品销售数据:

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/

10-12 16:03