针对同一列中的另一个计算 window 函数

Calculate window function against another in same column

您好,我正在使用 SQL 服务器。我有一组数据,我正在尝试使用 window 函数来计算某事的实例。然后我再次 运行ning window 函数并将其除以行计数 window 函数以尝试获得平均值。但是,我一直得到 0。是否可以 运行 一个 window 函数针对同一列中的另一个函数?

COUNT(city) OVER (partition by state)/Count(*) over (partition by total)*100 AS AVG

这样的事情可能吗?当我将它分开并且 运行 每个单独它工作时,但是当我将它们组合时我在列

中得到 0

这是因为整数运算——与 window 函数无关。写成:

COUNT(city) OVER (partition by state) * 100.0 / Count(*) over (partition by total) AS AVG

100.0在算术中放了一个小数点。所以,1/2 是 0。但是 1.0/2 是 0.5。