我在我的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)?
total(X)其中x是列名。 Click在這裏瞭解更多關於sqlite中的數學函數。
選擇合計(價格)AS TOTAL_PRICE FROM OrderTable; //將導致浮點值
SELECT SUM(價格)AS TOTAL_PRICE FROM OrderTable //將導致int值
樣品
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
sum()和total()集合函數返回組中所有非空值的 的總和。
如果沒有非空輸入行 然後總和()返回NULL但總()返回0.0。
NULL通常不是沒有行的總和,但一個有用的結果 SQL標準要求它和其他大多數SQL數據庫引擎實現 總和()的方式,使SQLite的確實它以同樣的方式在爲了 兼容。非標準的total()函數以SQL語言中解決此設計問題的便捷方式提供。
total()的結果總是一個浮點值。 sum()的結果是一個整數值,如果所有非NULL輸入都是整數。如果sum()中的任何 輸入既不是整數也不是NULL,則sum()返回一個浮點值,該值可能是真實和的近似值。
如果所有輸入爲 整數或NULL,並且在計算過程中發生在 期間的任何點,則Sum()將拋出「整數溢出」異常。 Total()永遠不會引發整數溢出。
我可能會用'sum'作爲標準,使用標準SQL是一個好習慣。如果您也包含「insert into OrderTable values(3.14)',那麼您會從'sum'中得到一個浮點值。 –
是的,這是非常明顯的,通過添加int + float會給你浮動值。 –
儘管只有SQLite的鬆散類型系統,但大多數DB都會抱怨浮點值或者將其靜默截斷爲整數。你確實注意到'total'和'sum'返回不同的類型。 –