Среднее несоответствие поплавка

Выбор возвращает прямо на 23000 строк
Исключение вернет от 60 до 200 строк (а не одинаковых строк)
Исключение должно возвращать 0, так как оно выбирает, кроме выбирают

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

[TF] это поплавок, и я получаю плавать не точно
Но я наивно думал, что avg (float) будет повторяться
Avg (float) действительно повторяется

Каково решение?
TF находится между 0 и 1, и мне нужно только 5 значащих цифр
Мне просто нужно AVG (TF), чтобы бежать с тем же номером
Десятичная дробь (9,8) дает мне достаточную точность, и если я приведу к десятичной дроби (9,8), за исключением правильно возвращается 0
Я могу изменить [TF] на десятичное (9,8), но это будет немного работы и много регрессионного тестирования, так как некоторые из тестов, которые используют [tf], занимают один день для запуска
Является ли изменение [TF] на десятичное (9,8) лучшим решением?

  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]

В этом случае tf является частотойтс-IDF
нормализация субъективна и не требует большой точности
Avg (tf) должен быть согласован с выбором, чтобы выбрать, или результаты не согласованы
В одном выборе с объединениями мне нужно последовательное среднее (TF)
Переход на десятичную и низкую точность для tf дал стабильные результаты

Ответы на вопрос(1)

Ваш ответ на вопрос