gpt4 book ai didi

sql-server - SQL Server 计算返回 0 而不是浮点值

转载 作者:行者123 更新时间:2023-12-03 23:31:29 25 4
gpt4 key购买 nike

我正在尝试在 SQL 中执行以下操作来计算加权评级:

SELECT CTE_3.idProduct,(CTE_3.vote_count / (CTE_3.vote_count + @minimumVotesRequired)) * CTE_3.vote_mean + (@minimumVotesRequired / (CTE_3.vote_count+ @minimumVotesRequired)) * ((SUM(CTE_3.vote_mean)/COUNT(CTE_3.IdProduct))) AS WeightedRating
FROM CTE_3
GROUP BY CTE_3.IdProduct,
CTE_3.vote_count,
CTE_3.vote_mean
ORDER BY idProduct;

但我面临的问题是结果总是 0.. 我尝试使用 Convert(FLOAT,operation) AS WeightedRating 但我仍然得到 0 的结果。

当我在计算器上手动执行此操作时,它返回 2.5416666..所以我很确定 SQL Server 无法管理我提供给操作的值。

除了 Actor 之外,我还应该做些什么吗?

这些值是:
投票计数为 2
投票平均值为 2.5
@minimumVotesRequired 是 1

编辑:

现在将所有内容转换为 float 后的唯一值是来自 CTE_3.vote_mean 的 2.5
SELECT CTE_3.idProduct,(CONVERT(FLOAT,CTE_3.vote_count) / (CONVERT(FLOAT,CTE_3.vote_count) + @minimumVotesRequired))
* CONVERT(FLOAT,CTE_3.vote_mean) +
(@minimumVotesRequired / (CONVERT(FLOAT,CTE_3.vote_count)+ @minimumVotesRequired))
* (SUM(CONVERT(FLOAT,CTE_3.vote_mean)))/COUNT(CTE_3.IdProduct)) AS WeightedRating
FROM CTE_3
GROUP BY CTE_3.IdProduct,
CTE_3.vote_count,
CTE_3.vote_mean
ORDER BY idProduct;

我缺少什么的任何建议?

最佳答案

如果 CTE_3.vote_count 类型为 int 或 @minimumVotesRequired 类型为 int,那么您将获得截断的 int 值。在进行除法之前,请确保它们是浮点数,或将它们作为浮点数转换。

另外,不要忘记 COUNT 是一个整数函数。您还需要将 COUNT 的结果转换为浮点数。

关于sql-server - SQL Server 计算返回 0 而不是浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com