sql 窗口函数
时间: 2025-01-23 08:08:59 浏览: 75
### SQL窗口函数概述
SQL窗口函数允许执行复杂的计算,而无需使用子查询或连接操作。这些函数可以跨多行聚合数据,在处理复杂的数据分析需求时特别有用。
#### 窗口函数基本结构
窗口函数的一般语法如下:
```sql
<窗口函数> OVER (
PARTITION BY <用于分组的列名>
ORDER BY <用于排序的列名>
[ROWS|RANGE BETWEEN ... AND ...]
)
```
这里`PARTITION BY`定义逻辑上的分区,类似于GROUP BY;`ORDER BY`则规定了每一部分内的排序方式[^2]。
#### 实际应用案例
考虑一个销售记录表`sold_items`,包含字段:`id`, `sale_date`, 和`price`。为了获取每个月的第一笔交易价格,可以采用`FIRST_VALUE()`窗口函数来实现这一目标[^4]。
##### 获取每月首单售价
```sql
SELECT DISTINCT
DATE_FORMAT(sale_date, '%Y-%m') AS month,
FIRST_VALUE(price) OVER (
PARTITION BY YEAR(sale_date), MONTH(sale_date)
ORDER BY sale_date ASC
) as first_sale_price
FROM sold_items;
```
此查询会按年月划分,并按照日期升序排列每一分区中的记录,最终选取每个时间段内最早发生的那条记录的价格作为该月份的第一个销售额度。
阅读全文
相关推荐

















