如何解决如何比较同一表中多个项目的日期之间的数据
我有一个每天跟踪库存的物品表 (mysql)
| item_id | qty | created_at |
| ------- | -------| ---------- |
| 1 | 5 | 2021-04-08 |
| 1 | 30 | 2021-04-07 |
| 1 | 100 | 2021-04-06 |
| 2 | 100 | 2021-04-08 |
| 2 | 0 | 2021-04-07 |
| 2 | 0 | 2021-04-06 |
| 3 | 0 | 2021-04-08 |
| 3 | 50 | 2021-04-07 |
| 3 | 100 | 2021-04-06 |
我想知道如何编写一个 SQL 查询来分析表中的所有项目并响应一些见解
例如。 item_id = 1 ---> 商品几乎缺货(5% 限制点)
item_id = 2 ---> 物品刚刚退回到库存(昨天是 0 件,我们有 100 件)
item_id = 3 ---> 商品今天缺货
此外,如果还有其他用于监控股票见解的想法,我会很高兴知道..
感谢所有帮助。
解决方法
考虑定期运行 SQL 作业。
商品几乎缺货(5% 限制)
嗯,占总数的 5%(我认为并不总是 100 件)。使用 item_id 和阈值创建表。如果当前库存低于或等于阈值,则报告。
商品刚刚恢复库存。
当日
是一个返回实际日期的函数,如“2021/04/08”我不熟悉 mySql 函数/语法
select item_id from myTable where qty > 0 and created_at = currentDay
and item_id IN (select item_id from myTable where qty = 0 and created_at = currentDay-1
商品今天缺货
select item_id from myTable where qty = 0 and created_at = currentDay
//评论后编辑
第一条评论:如果您想查看今天缺货而昨天没有的商品,请调整提供的查询。在条件中切换数量。
select item_id from myTable where qty = 0 and created_at = currentDay
and item_id IN (select item_id from myTable where qty > 0 and created_at = currentDay-1
第二条评论:考虑一下。如果您的初始库存在 D 天为 2 件,则在 D+1 时库存增加 1000,在 D+2 时库存增加 70。如果您从 D 天开始购买库存数量,则您的 5% 为 0.1 件。
首先这不会发生,所以你应该四舍五入到最接近的整数(数量 = 1),其次库存数量警告可能不相关。当您的总库存为 1072 件时,您的警告将在数量
,只需使用 NA
和一些条件逻辑:
lag()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。