如何在SQL中将算术和与分析函数结合起来以运行

如何在SQL中将算术和与分析函数结合起来以运行,sql,analytic-functions,Sql,Analytic Functions,我试图从普通SQL中的一个表中计算两次计数的结果(如下面的SQL摘录所示)的运行百分比,该表如下所示: 我的想法是: SELECT week(beginning), (select count(enquired_at) from TABLE) / (select count(*) from TABLE) * 100 OVER (partition by beginning order by beginning desc) 我想要一个结果集,它看起来如下: 一个人如何进行这种算术计算

我试图从普通SQL中的一个表中计算两次计数的结果(如下面的SQL摘录所示)的运行百分比,该表如下所示:

我的想法是:

    SELECT week(beginning),
(select count(enquired_at) from TABLE) / (select count(*) from TABLE) * 100 OVER (partition by beginning order by beginning desc)
我想要一个结果集,它看起来如下:

一个人如何进行这种算术计算,并使其从开始的第一周开始累积计算


谢谢

根据您的查询,您似乎希望
查询次数的运行计数不为空。如果是:

select t.*,
       ( count(enquired_at) over (order by beginning) * 1.0 /
         count(*) over (order by beginning)
       ) as ratio
from t;
或者更简单地说:

select t.*,
       avg(case when enquired_at is not null then 1.0 else 0 end) over (order by beginning) as ratio
from t
编辑:

您可以将其放入聚合查询中:

select week(beginning), 
       ( sum(count(enquired_at)) over (order by min(beginning)) * 1.0 /
         sum(count(*)) over (order by min(beginning))
       ) as ratio
from t
group by week(beginning);

你的描述不清楚。请显示您想要的结果并明确解释逻辑(“两次计数的结果”是模糊的)。同时标记你正在使用的数据库。谢谢戈登-我已经编辑了我的帖子,试图澄清。