小编Tom*_*Tom的帖子

如何将集合返回函数移动到 LATERAL FROM 项目 PostgreSQL

我试试这个

select created_at, 
sum((json_array_elements(shipping_lines::json) ->> 'price')::float) as shipping_price
from t1
group by 1
Run Code Online (Sandbox Code Playgroud)

它显示错误:

错误:聚合函数调用不能包含设置返回函数调用第 5 行:sum(((json_array_elements(shipping_lines::json) ->> 'price')... ^ 提示:您也许可以移动设置返回函数进入 LATERAL FROM 项目。

如何使用 Lateral From 解决这个问题?我读了这个 PsSQL 文档,但并没有真正理解横向功能

sql arrays postgresql json lateral-join

11
推荐指数
1
解决办法
9915
查看次数

为什么 Last_value 需要frame_clause 才能获得像 First_Value 这样的结果 - Window Function PostgreSQL

此代码显示了 3 次尝试以及为什么 Last_value 需要frame_clause 才能获得像 First_Value 这样的结果

select timestamp, 
last_value(timestamp) over (partition by campaign_id order by timestamp
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as last_day,
last_value(timestamp) over (partition by campaign_id order by timestamp) as last_day2,
first_value(timestamp) over (partition by campaign_id order by timestamp desc) as last_day3
from t1
Run Code Online (Sandbox Code Playgroud)

Frame_clause 是

无界前一个和无界后一个之间的范围

结果:

在此输入图像描述

sql postgresql window-functions

5
推荐指数
1
解决办法
899
查看次数

标签 统计

postgresql ×2

sql ×2

arrays ×1

json ×1

lateral-join ×1

window-functions ×1