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



嗨,我正在使用SQL server。我有一组数据,我正在尝试使用窗口函数来计算某个事物的实例。然后,我再次运行窗口函数,并将其除以行计数窗口函数,试图获得平均值。但是,我一直得到0。是否可以对同一列中的另一个窗口函数运行窗口函数?

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

这样的事情可能发生吗?当我把它拆开并单独运行时,它是有效的,但当我把它们组合在一起时,我在列中得到0

这是因为整数运算——与窗口函数无关。将其写成:

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。

最新更新