SELECT date_column, SUM(amount) OVER (ORDER BY date_column ROWS BETWEEN 7 PRECEDING AND CURRENT ROW) as rolling_sumFROM my_tableWHERE date_column BETWEEN TO_DATE('2022-01-01', 'YYYY-MM-DD') AND TO_DATE('2022-01-31', 'YYYY-MM-DD')ORDER BY date_column;优化此段代码,取去年同期数据
时间: 2024-02-12 10:05:00 浏览: 20
要优化上述代码以查询去年同期数据,您需要修改WHERE子句中的日期范围。以下是一个示例:
```
SELECT date_column, SUM(amount) OVER (ORDER BY date_column ROWS BETWEEN 7 PRECEDING AND CURRENT ROW) as rolling_sum
FROM my_table
WHERE date_column BETWEEN TO_DATE('2021-01-01', 'YYYY-MM-DD') AND TO_DATE('2021-01-31', 'YYYY-MM-DD')
ORDER BY date_column;
```
在上面的示例中,我们将WHERE子句中的日期范围从今年的1月份更改为去年的1月份。这将查询去年同期的数据,并计算最近7天内的数据总和。请注意,您需要根据您的具体情况修改查询中的列和表名。
相关问题
``` SUM(amount) OVER (ORDER BY timestamp ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)```解释
这是一种SQL语言中的窗口函数,用于计算指定列的累积和。在这个例子中,对`amount`列进行求和,并按`timestamp`列进行排序。`ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`表示从当前行往前的所有行。也就是说,这个窗口函数会计算每一行之前的`amount`列的和,并将这个和作为一个新的列添加到结果集中。
rows between unbounded preceding and current row使用方法
"ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" 是 SQL 中的一个窗口函数(Window Function)的语法,用于指定窗口的范围。它的含义是从第一行到当前行的范围内进行计算。
具体来说,如果一个查询包含窗口函数,那么这个窗口函数会按照指定的窗口范围(也就是 "ROWS BETWEEN" 子句)在每一行上进行计算。"UNBOUNDED PRECEDING" 表示从窗口的第一行开始计算,而 "CURRENT ROW" 则表示当前行。
例如,以下是一个使用 "ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" 的例子:
```
SELECT
name,
age,
salary,
SUM(salary) OVER (ORDER BY age ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_total
FROM
employees
ORDER BY
age;
```
在这个例子中,我们使用 "SUM" 窗口函数计算每个员工的薪水累计总和,并使用 "ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" 来指定窗口范围。这个查询会按照员工年龄升序排序,并计算每个员工的薪水累计总和。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)