gpt4 book ai didi

SQL - 计算有序列表中的更改次数

转载 作者:行者123 更新时间:2023-12-01 11:55:04 27 4
gpt4 key购买 nike

假设我有一个包含两列(日期和价格)的表格。如果我选择了一个日期范围,那么有没有办法计算价格随时间变化的次数?

例如:

   Date   | Price
22-Oct-11 | 3.20
23-Oct-11 | 3.40
24-Oct-11 | 3.40
25-Oct-11 | 3.50
26-Oct-11 | 3.40
27-Oct-11 | 3.20
28-Oct-11 | 3.20

在这种情况下,我希望它返回 4 次价格变化的计数。

提前致谢。

最佳答案

您可以使用解析函数 LEADLAG访问结果集的前一行和下一行,然后使用它来查看是否有更改。

SQL> ed
Wrote file afiedt.buf

1 with t as (
2 select date '2011-10-22' dt, 3.2 price from dual union all
3 select date '2011-10-23', 3.4 from dual union all
4 select date '2011-10-24', 3.4 from dual union all
5 select date '2011-10-25', 3.5 from dual union all
6 select date '2011-10-26', 3.4 from dual union all
7 select date '2011-10-27', 3.2 from dual union all
8 select date '2011-10-28', 3.2 from dual
9 )
10 select sum(is_change)
11 from (
12 select dt,
13 price,
14 lag(price) over (order by dt) prior_price,
15 (case when lag(price) over (order by dt) != price
16 then 1
17 else 0
18 end) is_change
19* from t)
SQL> /

SUM(IS_CHANGE)
--------------
4

关于SQL - 计算有序列表中的更改次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com