postgresql 开窗函数 连接外表
时间: 2023-12-14 14:05:32 浏览: 86
PostgreSQL连接驱动
在 PostgreSQL 中,可以使用窗口函数来对查询结果进行计算和排序。连接外部表时,可以使用子查询或者 JOIN 语句来实现。
如果你想在窗口函数中连接外部表,可以使用子查询来先将外部表与主查询进行连接,然后将连接的结果作为子查询的输入,再在子查询中使用窗口函数。下面是一个示例:
```sql
SELECT *,
SUM(amount) OVER (PARTITION BY category_id ORDER BY date) AS running_total
FROM (
SELECT t1.transaction_id, t1.date, t1.amount, t2.category_id
FROM transactions t1
JOIN external_table t2 ON t1.transaction_id = t2.transaction_id
) subquery;
```
在这个例子中,假设你有一个 transactions 表和一个外部表 external_table,它们通过 transaction_id 关联。在子查询中,我们将两个表连接起来,并以 category_id 进行分组,并按日期排序。然后,我们使用窗口函数 SUM 来计算每个分类下的累计金额。
阅读全文