29

我有一个 SQLite 数据库,其中包含一个包含保龄球中心一些联盟球员得分的表格。我正在尝试获取每个玩家 ID 的 Score 列的平均值。这样做的问题是我只需要平均值的整个部分,它不应该四舍五入(例如:168.99 的平均值应该返回 168,而不是 169)。

当试图在谷歌上找到类似的东西时,我只找到了 SQL Server 和其他一些的解决方案,但没有找到 SQLite,所以如果有人能帮助我,我真的很感激!

到目前为止,我正在使用ROUND(AVG(s1.Score),2)并且我正在截断使用数据库的 Java 程序中的额外部分,方法是将其转换为字符串,删除不需要的部分,然后将其转换为整数,但我宁愿做这一切如果可能,在 SQL 中。

4

3 回答 3

47

您可以将其转换为整数。它将截断它,相当于地板。

于 2011-08-20T02:35:59.277 回答
18

您可以使用 round(value - 0.5) (见此处

于 2014-07-18T09:11:02.007 回答
0

3.35.0+ 版本开始,您可以使用该floor()函数向下舍入数字:

SELECT
  floor(10.0),    -- 10
  floor(10.1),    -- 10
  floor(10.5),    -- 10
  floor(10.9999), -- 10
  floor(-10.0),   -- 11
  floor(-10.1),   -- 11
  floor(-10.5),   -- 11
  floor(-10.9999) -- 11
于 2021-11-24T17:54:38.237 回答