首页 > 解决方案 > 如果任何商店连续 3 次减少其销售额。HIVE 或 SQL 中的解决方案?

问题描述

在此处输入图像描述

如果任何商店连续 3 次减价 -> 打印商店名称。

     python algo:
      1> sort by date.
      loop
      3> select shop(i) if not in list(visited), 
          check if its sale decrease 
          for 3 times consecutively, 
          if yes -> print the shop name.
      2> append shopName in visited.

有没有办法在 HIVE 或 SQL 中做到这一点?

标签: mysqlsqlhivehiveql

解决方案


在 Hive 中,您可以使用lagandlead获取上一行和下一行的值,并使用它们进行比较。

select distinct shop
from (select t.*
      ,lag(sales) over(partition by shop order by date) as prev_sales
      ,lead(sales) over(partition by shop order by date) as next_sales
      from tbl t
     ) t
where prev_sales > sales and sales > next_sales

推荐阅读