Promedio de inconsistencia de flotación

La selección vuelve a la derecha en 23,000 filas
La excepción devolverá entre 60 y 200 filas (y no las mismas filas)
La excepción debe devolver 0 ya que es seleccionar una excepto seleccionar una

PK: [docSVenum1]. [EnumID], [docSVenum1]. [ValueID], [FTSindexWordOnce]. [WordID]

[tf] es un flotador y yo obtengo flotador no es exacto
Pero ingenuamente pensé que avg (float) sería repetible
Promedio (flotante) parece ser repetible

¿Cuál es la solución?
TF está entre 0 y 1 y solo necesito como 5 dígitos significativos
Solo necesito avg (TF) para que sea el mismo número ejecutado para ejecutar
Decimal (9,8) me da suficiente precisión y si convierto a decimal (9,8) el excepto devuelve correctamente 0
Puedo cambiar [TF] a decimal (9,8), pero será un poco trabajo y muchas pruebas de regresión, ya que algunas de las pruebas que usan [tf] toman más de un día en ejecutarse
¿Es el cambio [TF] a decimal (9,8) la mejor solución?

  SELECT [docSVenum1].[enumID], [docSVenum1].[valueID], [FTSindexWordOnce].[wordID]
       , avg([FTSindexWordOnce].[tf]) AS [avgTFraw]
    FROM [docSVenum1] 
    JOIN [docFieldLock] 
           ON [docFieldLock].[sID] = [docSVenum1].[sID] 
          AND [docFieldLock].[fieldID] = [docSVenum1].[enumID] 
          AND [docFieldLock].[lockID] IN (4, 5) /* secLvl docAdm */ 
    JOIN [FTSindexWordOnce] 
           ON [FTSindexWordOnce].[sID] = [docSVenum1].[sID]
GROUP BY [docSVenum1].[enumID], [docSVenum1].[valueID], [FTSindexWordOnce].[wordID]

except 

  SELECT [docSVenum1].[enumID], [docSVenum1].[valueID], [FTSindexWordOnce].[wordID]
       , avg([FTSindexWordOnce].[tf]) AS [avgTFraw]
    FROM [docSVenum1] 
    JOIN [docFieldLock] 
           ON [docFieldLock].[sID] = [docSVenum1].[sID] 
          AND [docFieldLock].[fieldID] = [docSVenum1].[enumID] 
          AND [docFieldLock].[lockID] IN (4, 5) /* secLvl docAdm */ 
    JOIN [FTSindexWordOnce] 
           ON [FTSindexWordOnce].[sID] = [docSVenum1].[sID]
GROUP BY [docSVenum1].[enumID], [docSVenum1].[valueID], [FTSindexWordOnce].[wordID] 

order by [docSVenum1].[enumID], [docSVenum1].[valueID], [FTSindexWordOnce].[wordID]

En este caso, tf es la frecuencia de término detf-idf
La normalización es subjetiva y no requiere mucha precisión.
El promedio (tf) debe ser consistente de selección a selección o los resultados no son consistentes
En una sola selección con combinaciones, necesito un promedio constante (tf)
Ir con decimal y una baja precisión para tf obtuvo resultados consistentes

Respuestas a la pregunta(1)

Su respuesta a la pregunta