sql 查询一年之内的记录

sql 查询一年之内的记录,说一下思路,数据库里面的时间要小于现在的时间,大于1年前现在的时间的。其实就是一个时间段,从去年的今天到今年的今天的这段时间才算是一年之内的。

相关语句:

where  CreateDate<GETDATE() and

CreateDate>DATEADD(yy, -1, GETDATE())

### SQL 窗口函数使用教程 #### 什么是窗口函数? 窗口函数允许在查询结果集上执行聚合操作而不减少行数。这意味着可以在不改变原始数据的情况下,对每一行应用聚合逻辑。 #### 关键组成部分 - **PARTITION BY**:用于将数据分割成多个分区,在每个分区内独立计算窗口函数[^2]。 - **ORDER BY**:定义了各分区内记录处理的顺序,影响最终输出结果中的排列次序[^5]。 - **FRAME CLAUSE(框架子句)**:通过指定起始位置和结束位置来限定参与运算的数据范围;例如 `ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW` 表示从第一个到当前行之间的所有行都参与到该窗口函数的操作中去[^3]。 #### 实际案例展示 假设有一个名为 `temp.user_info` 的表格存储着用户的某些行为统计数据,现在想要获取每位用户在其所属年龄段内的累计PV值: ```sql SELECT id, age, pv, SUM(pv) OVER ( PARTITION BY age -- 将数据按年龄划分成不同部分 ORDER BY pv -- 对每一年龄段内按照pv升序排序 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -- 定义累积求和的作用域是从最开始至当前位置为止的所有行 ) AS cumulative_pv_per_age_group FROM temp.user_info; ``` 此命令会返回一个新的字段 `cumulative_pv_per_age_group` ,它表示对于每一个特定年龄的人群来说,当遍历他们的个人资料时所遇到的最大 PV 总计是多少。 另外还有其他类型的窗口函数可用于实现更多样化的统计需求,比如排名、移动平均线等。 #### 新型窗口化表值函数(TVF) 值得注意的是,随着技术的发展出现了更为先进的 windowing TVF 技术作为传统 GROUP BY 方式的补充甚至替代方案之一。这类方法不仅遵循最新的SQL标准而且能够更好地满足复杂场景下的业务诉求,如 top-N 查询或是跨多张表间的连接操作等等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值