カラムがSQLiteテーブル(OrderTable)にあります。私は総価格を持つことができるように、価格列にすべての値を追加したいと思います。例えば、価格欄についてはSQLiteの同じ列のすべての要素を追加
は、3つの値があります。
150.00
250.00
300.00
はどのようにしてSQLiteのクエリを使用して合計金額(700.00)を得ることができますか?
カラムがSQLiteテーブル(OrderTable)にあります。私は総価格を持つことができるように、価格列にすべての値を追加したいと思います。例えば、価格欄についてはSQLiteの同じ列のすべての要素を追加
は、3つの値があります。
150.00
250.00
300.00
はどのようにしてSQLiteのクエリを使用して合計金額(700.00)を得ることができますか?
合計(X)ここで、xは列名です。 Clickここでsqliteの数学関数について知りたい
SELECT合計(価格)AS TOTAL_PRICE FROM OrderTable; // //は、int型の値reference
から
SAMPLE
CREATE TABLE OrderTable (Price Integer); INSERT INTO OrderTable VALUES (1); INSERT INTO OrderTable VALUES (2); INSERT INTO OrderTable VALUES (3); INSERT INTO OrderTable VALUES (NULL); // NULL SELECT total(Price) AS TOTAL_PRICE FROM OrderTable; // output 6.0 SELECT sum(Price) AS TOTAL_PRICE FROM OrderTable // output 6
を発生しますOrderTable FROM TOTAL_PRICE AS float値
SELECT SUM(価格)となりますsum()およびtotal()集計関数は、グループ内のNULL値でないすべての の合計を返します。次いで
ない非NULL入力行 がない場合の和は、())(NULLが、トータルリターン0.0を返します。
NULLは、通常、無行の合計が、 SQL標準に役立つ結果は、それを必要とされていないとSQLiteのは、同じ方法でそれをしないように、他のほとんどのSQLデータベースエンジンは であるために)(そのように 合計を実装します互換性があります。非標準のtotal()関数は、として提供され、SQL言語でこの設計上の問題を回避する便利な方法です。
total()の結果は、常に浮動小数点値です。 の結果NULL以外の入力がすべて整数の場合、sum()は整数値です。 sum()への のいずれかの入力が整数でもNULLでもない場合、sum()は の浮動小数点値を返します。これは真の和の近似値になります。
すべての入力が の整数またはNULLで、計算が の間の任意のポイントで整数オーバーフローが発生した場合、Sum()は「整数オーバーフロー」例外をスローします。 Total()は整数オーバーフローを起こすことはありません。
私はたぶん 'sum'を標準としていますので、標準SQLを使うのは良い習慣です。 'insert into OrderTable values(3.14)'も含めると、 'sum'から浮動小数点値を取得します。 –
これは非常に明白です。int + floatを追加することで浮動小数点値が得られます。 –
しかし、SQLiteの緩いタイプのシステムでのみ、ほとんどのDBは浮動小数点値に不平を言うか、静かに整数に切り捨てます。そして、あなたは 'total'と' sum'が異なるタイプを返すことに注目しました。 –