数量逐年增加的品牌

问题描述 投票:0回答:1

我有一个包含三列年份、品牌、金额的表,我想要一个查询来返回其金额每年都在增加的品牌记录。

我已将示例输入数据和预期输出数据粘贴在下面。

表格格式:

年_v 品牌 金额
2018 宝洁 50000
2019 宝洁 45000
2020 宝洁 60000
2018 IBM 55000
2019 IBM 60000
2020 IBM 70000
2018 80000
2019 40000
2020 36000

预期输出:

年_v 品牌 金额
2018 IBM 55000
2019 IBM 60000
2020 IBM 70000

IBM的金额每年都在增加

mysql sql
1个回答
2
投票
 SELECT *
 FROM brands
 WHERE brand IN (SELECT brand
                   FROM (SELECT brand, (amount - LAG(amount, 1, 0) OVER (PARTITION BY brand ORDER BY year_v)) diff
                           FROM brands) t
                  GROUP BY brand
                 HAVING MIN(diff) > 0);

lag(): LAG (标量表达式 [,偏移] [,默认]) OVER ( [ 分区依据子句] 订单依据子句)

可能有重构此查询的空间,但我会将其留给OP来决定。


演示

© www.soinside.com 2019 - 2024. All rights reserved.