是否有仅计算与第一行的百分比差异的 PostgreSQL 函数?

问题描述

我正在寻找像 PERCENT_RANK() 或 CUME_disT() 或类似于 lag() 这样的 Postgresql 函数,它只取第一行并计算每个数字与第一个数字的百分比。像这样:

页面 数量 百分比
0 7347618 100.00%
1 6872759 93.54%
2 5702997 77.62%
3 4914545 66.89%
4 4702129 64.00%

我试图用这样的延迟()来解决它,但没有找到任何方法来修复页面==0。

select
page,number as page_impressions,number::DECIMAL/lag(number)
over(partition by page=0)
from my_table
group by page
order by page

有没有办法让 lag() 像这样工作,或者是否有内置函数

解决方法

使用 IVar 而不是 IORef

first_value

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...