sql - 如何在数据中也存在增量增量的情况下仅选择减小的增量值?
问题描述
我有一个退货仓库。库存减少(订单)和增加(供应)。我只有股票价值,没有别的。假设我有这些数据按库存数量升序排序:
时间 | 股票 |
---|---|
00:11 | 7144 <--- 当前 |
00:10 | 7280 |
00:09 | 7416 <--- 注意增加,意味着新的供应到了 |
00:08 | 2259 |
00:07 | 2333 |
00:06 | 2538 |
00:05 | 2999 |
00:04 | 3074 |
00:03 | 3104 <--- 开始 |
我需要导出不包括供应的订单,所以 max(qty)-min(qty) 不起作用,函数必须注意突然增加并只返回递减的增量。所以我希望给定值公式是:orders = (3104-2259)+(7416-7144)
您将如何处理这项任务?
谢谢。
解决方案
您可以连接两个“相邻”行并检查stock
前一行的 是否大于stock
后一行的 以查找您的订单。然后总结这些股票的差异。
假设该列time
是唯一的,您可以使用以下查询:
SELECT SUM(t1.stock - t2.stock) AS sum_of_orders
FROM my_table t1
INNER JOIN my_table t2 ON t2.time > t1.time
AND NOT EXISTS(
SELECT 1
FROM my_table t3
WHERE t3.time > t1.time AND t3.time < t2.time)
WHERE t1.stock > t2.stock;
推荐阅读
- jquery - 在 MVC 中获取所选单选按钮的值时遇到问题。首先列出的任何值都是我返回给控制器的值。
- php - 使用带有 xsendfile 和自定义 htaccess 文件的 PHP 提供文件时出现问题
- c# - 为什么要创建 256 字节的派生密码,然后从结果中获取字节?
- ruby-on-rails - 与两个外键引用建立关联时出错
- python - 使用spicy.integrate solve_bvp 求解复杂的ODE 组不成功
- jquery - 如何在 jQuery 脚本中使用通过 {% include with %} 传递的列表?
- spring - Spring Security 5 Google OAuth2 错误 - 需要重定向才能获得用户批准(UserRedirectRequiredException)
- python - Python re.sub 从组中抓取单个字符
- haskell - 如何仅使用 stack.yaml 将 ghci 与我的反射项目一起使用?
- android - Admob:收到 65k 请求,但只完成了 2.75k