1. ホーム
  2. sql

[解決済み] Postgresql で除算( / )がうまくいかない。

2022-02-11 20:45:20

質問

私はテーブルを持っています software で、その中のカラムは dev_cost , sell_cost . もし dev_cost が16000で sell_cost は7500です。

を回収するために、販売するソフトの数量はどのように求めればよいのでしょうか? dev_cost ?

以下のようにクエリしました。

select dev_cost / sell_cost from software ;

答えとして2が返されています。でも、3が必要なんですよね?

そのためのクエリーは何でしょうか?よろしくお願いします。

どのように解決するのですか?

カラムが整数型であり 整数の除算では、結果がゼロの方向に切り捨てられます。 . 正確な結果を得るには、次のようにします。 少なくとも1つの値を浮動小数点数または10進数にキャストします。 :

select cast(dev_cost as decimal) / sell_cost from software ;

または単に

select dev_cost::decimal / sell_cost from software ;

そして、その結果を最も近い整数に切り上げるために ceil() 関数を使用します。

select ceil(dev_cost::decimal / sell_cost) from software ;

(参照 SQLFiddleのデモ .)