【发布时间】:2021-09-21 05:29:27
【问题描述】:
对于 SQL 查询/存储过程,我希望在一段时间内按类型查找给定值的峰值总和。此外,如果峰值在给定时间段内没有下降趋势,则不应计算在内。
数据,例如:
| Type | Amount | Date |
|---|---|---|
| AAA | 10 | 2021-07-11 |
| AAA | 15 | 2021-07-11 |
| AAA | 20 | 2021-07-11 |
| AAA | 25 | 2021-07-11 *Need this peak |
| 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 *Need this peak added to previous peak |
| 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 *Need this peak |
| 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 *This peak won't count because the downtrend happens the next day |
| CCC | 30 | 2021-07-12 |
| CCC | 20 | 2021-07-12 |
| CCC | 10 | 2021-07-12 |
给定日期 2021-07-11 的结果应该是:
| Type | Total |
|---|---|
| AAA | 55 |
| BBB | 30 |
(不包括CCC,因为在给定日期没有下降趋势)
我什至不确定从哪里开始,除了可能会获取每行的值,而每行的后续行较少(开始下降趋势)。
【问题讨论】:
-
。 . SQL 表代表 无序 集。如果没有对行进行排序(可能使用
date上的时间组件),则无法回答问题。
标签: sql sql-server azure-data-factory