29

ボウリングセンターの一部のリーグプレーヤーのスコアを含むテーブルを含むSQLiteデータベースがあります。各プレーヤーIDのスコア列の平均を取得しようとしています。これに伴う問題は、平均の全体だけが必要であり、丸めてはならないことです(例:平均168.99は、169ではなく168を返す必要があります)。

Googleでこのようなものを見つけようとしたとき、SQL Serverと他のいくつかのソリューションしか見つかりませんでしたが、SQLiteは見つかりませんでした。誰かがこれを手伝ってくれるなら、本当に感謝しています!

これまでのところ、ROUND(AVG(s1.Score),2)データベースを使用するJavaプログラムの余分な部分を文字列に変換し、不要な部分を削除してから整数にキャストすることで切り捨てていますが、すべてを実行したいと思います。可能であればSQLで。

4

3 に答える 3

47

整数にキャストするだけで使用できます。床に相当する切り捨てが行われます。

于 2011-08-20T02:35:59.277 に答える
18

You can use round(value - 0.5) (seen here)

于 2014-07-18T09:11:02.007 に答える
0

From version 3.35.0+, you can use the floor() function to round down the number:

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 に答える