我正试图提出一个SQL来获取Postgres 9.6数据库表中的数据。
Table Data 我尝试了Windows函数的各种变体,但是这些变体似乎都不起作用,
基于输入列C3,我要投影第四列C4,输出应类似于以下内容。
如何使用SQL完成此操作?该表最多可包含1亿条记录。
答案 0 :(得分:0)
我可以使用以下SQL来获得所需的输出
,t2为(从Test_table中选择c1,c3,其中c3不为空) 更新Test_table t1 设置c3 = t2.c3 从t2开始 其中t1.c1 <= t2.c1 并且t1.c3为null;
选择 c1 ,c2 ,C3 ,dense_rank()超过(按c3排序)cr 来自Test_table 按c1排序;
答案 1 :(得分:0)
使用窗口函数在按c1降序排列的窗口中选择最小的c3,但按c1升序对整个输出进行排序:
select c1, c2, c3, min(c3) over (order by c1 desc) as c4 from t order by c1;
答案 2 :(得分:0)
我运行了您提供的SQL,并得到了此输出。我以为这张照片描述了我真正想要的。希望显示来自运行SQL的输出以及所需的输出可能会有所帮助。