mysql - 在最大值上更新表的存储过程
问题描述
我需要一个没有任何参数的存储过程。它可以利用临时表或任何需要的东西。
输入表:
row#| group_id | invoice_type_id | transformed_id | net
1 | 7 | 1 | NULL | 28.40
2 | 7 | 2 | NULL | 11.00
3 | 7 | 3 | | 65.00
4 | 7 | 4 | | 17.00
5 | 7 | 3 | | 18.00
6 | 7 | 4 | | 34.50
7 | 8 | 1 | | 58.00
期望的输出:
row#| group_id | invoice_type_id | transformed_id | net
1 | 7 | 1 | NULL | 28.40
2 | 7 | 2 | NULL | 11.00
3 | 7 | 3 | 1 | 65.00
4 | 7 | 4 | 2 | 17.00
5 | 7 | 3 | 2 | 18.00
6 | 7 | 4 | 1 | 34.50
7 | 8 | 1 | | 58.00
解释:假设我们对数据进行分组,group_id
并且第一组有group_id=7
)。在该组数据中,将有一行带有invoice_type_id=1
,另一行带有invoice_type_id=2
。我需要过滤行invoice_type_id=3
并使用max(net)
. 必须更新该行SET transformed_id=1
或2
(以较高者为准。我对输出第三行#3 进行采样,因为其中 invoice_type_id= 1的行#1 高于行#2)。剩下的行invoice_type_id=3
应该更新SET transformed_id=1
或2
(以较低者为准)。也是如此invoice_type_id=4
。
它应该对每组数据进行迭代(按 分组group_id
)并重复上述逻辑。
解决方案
推荐阅读
- generics - 如何访问在 Diesel 中一般访问的表的具体列?
- java - Spring Java 配置类克隆
- node.js - 如何在我的 node.js 应用程序中删除 mongodb 中引用的对象 ID?
- python - Django模型?
- php - 遍历数组
- c++ - 警告 C6387 Visual Studio
- python - 我可以从字符串的每一行中仅提取整数并将它们保存在列表中吗?
- android - 构建 Kotlin 类以使用 Gson 将 json 响应转换为类
- iframe - 为什么 iFrame 用于静默身份验证?
- php - 按库存和价格对产品进行排序 woocommerce