SQLiteでは、total()
関数は、グループ内のすべてのNULL以外の値の合計を返します。
NULL以外の値がない場合は、0.0を返します。
この関数はsum()
に似ています NULL入力を処理する方法を除いて、関数。 NULL以外の値がない場合は、sum()
NULLを返します(total()
のように0.0ではありません 関数が戻ります。
例
次の表を検討してください。
SELECT * FROM Products;
結果:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0 5 Red Widget
total()
を使用できます 価格の合計を取得する関数。
SELECT total(Price) FROM Products;
結果:
738.22
最後の行の価格がNULLであっても、total()
関数は、NULL以外の値をすべて追加し、NULL値を無視するため、これを処理できます。
すべてのNULL値
NULL以外の値がない場合、結果は0.0になります。
SELECT total(Price)
FROM Products
WHERE ProductId = 5;
結果:
0.0
ここでtotal()
およびsum()
異なる。この場合、sum()
NULLを返します。
total()
関数は常に浮動小数点値を返します。
ただし、これはSQL標準に準拠していないことに注意してください。標準準拠のコードを使用する場合は、sum()
を使用してください 。
サブセットの合計を取得
WHERE
を使用する別の例を次に示します。 テーブルのサブセットを返す句。
SELECT total(Price)
FROM Products
WHERE ProductId > 2;
結果:
209.27
今回はNULL以外の値を追加しているので、NULL以外の結果が得られます。
これは、追加しているのと同じ列でフィルタリングする別の列です。
SELECT total(Price)
FROM Products
WHERE Price < 150;
結果:
348.77