不同行中的值之间的差异

现在

MariaDB版本10.4.10。

我有一个股票搜寻器脚本,该脚本每小时获取一次股票数据,并将其插入到MySQL数据库中。数据库结构与此类似:

stocks( time_fetched DATETIME, fetch_id INT, name VARCHAR, price INT )

还有一些示例数据:

**time_fetched          fetch_id        name        price**
2020-03-10 09:00:00     1               stock1      10
2020-03-10 09:00:00     1               stock2      15
2020-03-10 10:00:00     2               stock1      12
2020-03-10 10:00:00     2               stock2      20
2020-03-10 11:00:00     3               stock1      8
2020-03-10 11:00:00     3               stock2      18

我想要一种获取每种股票价格变化的方法,例如,在09:00和10:00或09:00和11:00之间取入的股票。这样的东西(伪代码):

SELECT *, DIFF( current_price, price_one_hour_ago) AS change_1h, DIFF( current_price, price_two_hours_ago) AS change_2h

是否可以直接在MySQL中执行此操作?我正在使用PHP脚本显示数据,所以我可能不得不求助于PHP。

缺口

您可以使用CTE来生成延迟1或2个小时的价格,然后使用这些值(可能使用COALESCE来将NULL值变成0计算更改

WITH prices AS (
  SELECT time_fetched, name, price,
         LAG(price, 1) OVER(PARTITION BY name ORDER BY time_fetched) AS price_1h,
         LAG(price, 2) OVER(PARTITION BY name ORDER BY time_fetched) AS price_2h
  FROM stocks
)
SELECT time_fetched, name, price,
       COALESCE(price - price_1h, 0) AS change_1h,
       COALESCE(price - price_2h, 0) AS change_2h
FROM prices

输出:

time_fetched            name    price   change_1h   change_2h
2020-03-10 09:00:00     stock1  10      0           0
2020-03-10 10:00:00     stock1  12      2           0
2020-03-10 11:00:00     stock1  8       -4          -2
2020-03-10 09:00:00     stock2  15      0           0
2020-03-10 10:00:00     stock2  20      5           0
2020-03-10 11:00:00     stock2  18      -2          3

dbfiddle上的演示还显示了不带的查询结果COALESCE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自不同行的两个字段之间的差异

来自分类Dev

Oracle中不同行中同一字段的日期/时间差异

来自分类Dev

在不同行的多个列中查找重复值

来自分类Dev

分组中的值之间的差异

来自分类Dev

嵌套类中g ++和clang ++之间的不同行为

来自分类Dev

PANDAS-不同行和不同列中的值之间的差异

来自分类Dev

以HH:MM:SS格式的输出计算不同行中相同字段的ORACLE中的TIME差异

来自分类Dev

来自不同行的两个值之间的差异(按列分组)

来自分类Dev

如何对tidyverse中不同行的值求和?

来自分类Dev

熊猫:不同行中的值相等

来自分类Dev

提取不同行中的多个值

来自分类Dev

使用awk匹配不同行中的值

来自分类Dev

合并不同行中的字段值

来自分类Dev

如何在SQL Server 2012中找到不同行的两个日期单元格之间的差异?

来自分类Dev

在不同行中的括号之间打印内容

来自分类Dev

ComboBox用于不同行中的值

来自分类Dev

查找值不同的表之间的差异

来自分类Dev

如何计算不同行中数据之间的差异?

来自分类Dev

SQL:比较不同行的两列中的差异并与值进行比较

来自分类Dev

使用在不同行之间的数据框中应用

来自分类Dev

计算同一表中不同行之间的增量

来自分类Dev

比较熊猫中不同行之间的值

来自分类Dev

如何计算一张表中不同行和列之间的时间戳差异?

来自分类Dev

R - 比较不同行中两列中的值

来自分类Dev

如何在python中不同行的列之间相乘

来自分类Dev

如何根据同一表中的日期计算不同行中两个值之间的差异

来自分类Dev

基于组的不同行中的聚合值

来自分类Dev

如何获得(多个)两个不同行之间的差异?

来自分类Dev

计算数据集不同行中日期之间的日期差异

Related 相关文章

热门标签

归档