对于 SQL 查询/存储过程,我希望在一段时间内按类型查找给定值的峰值总和。此外,如果峰值在给定时间段内没有下降趋势,则不应计算在内。
数据,例如:
| 类型 | 数量 | 日期 |
|---|---|---|
| AAA | 10 | 2021-07-11 |
| AAA | 15 | 2021-07-11 |
| AAA | 20 | 2021-07-11 |
| AAA | 25 | 2021-07-11 *需要这个高峰 |
| AAA | 20 | 2021-07-11 |
| AAA | 15 | 2021-07-11 |
| AAA | 10 | 2021-07-11 |
| AAA | 15 | 2021-07-11 |
| AAA | 20 | 2021-07-11 |
| AAA | 25 | 2021-07-11 |
| AAA | 30 | 2021-07-11 *需要将此峰值添加到上一个峰值 |
| AAA | 20 | 2021-07-11 |
| AAA | 15 | 2021-07-11 |
| AAA | 10 | 2021-07-11 |
| BBB | 10 | 2021-07-11 |
| BBB | 20 | 2021-07-11 |
| BBB | 30 | 2021-07-11 *需要这个高峰 |
| BBB | 20 | 2021-07-11 |
| BBB | 10 | 2021-07-11 |
| CCC | 10 | 2021-07-11 |
| CCC | 20 | 2021-07-11 |
| CCC | 30 | 2021-07-11 |
| CCC | 20 | 2021-07-11 |
| CCC | 10 | 2021-07-11 |
| CCC | 20 | 2021-07-11 |
| CCC | 30 | 2021-07-11 |
| CCC | 40 | 2021-07-11 *此高峰不计算在内,因为下降趋势发生在第二天 |
| CCC | 30 | 2021-07-12 |
| CCC | 20 | 2021-07-12 |
| CCC | 10 | 2021-07-12 |
给定日期 2021-07-11 的结果应该是:
| 类型 | 全部的 |
|---|---|
| AAA | 55 |
| BBB | 30 |
(不包括 CCC,因为在给定日期没有下降趋势)
我什至不知道从哪里开始,除了可能获得每行的值,其后一行的值较小(开始下降)。