在 SQLite 中添加同一列的所有元素

Nit*_*ish 3 sqlite iphone

我的 SQLite 表 (OrderTable) 中有Price列。我想添加价格列中的所有值,以便获得总价。

例如价格列有 3 个值:

150.00  
250.00  
300.00 
Run Code Online (Sandbox Code Playgroud)

如何使用 SQLite 查询获得总金额(700.00)?

Pra*_*n-K 5

total(X) 其中 x 是列名。单击此处了解有关 sqlite 中数学函数的更多信息。

SELECT total(Price) AS TOTAL_PRICE FROM OrderTable; // 将产生浮点值

SELECT sum(Price) 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
Run Code Online (Sandbox Code Playgroud)

参考

总和()总()聚集函数组中返回所有非空值的总和。

如果没有非 NULL 输入行, 则 sum() 返回 NULL 但 total() 返回 0.0。

对于没有行的总和,NULL 通常不是有用的结果,但 SQL 标准要求它和大多数其他 SQL 数据库引擎以这种方式实现 sum(),因此 SQLite 以相同的方式执行它以便兼容。提供了非标准的 total() 函数,以方便地解决 SQL 语言中的此设计问题。

total() 的结果总是一个浮点值。如果所有非 NULL 输入都是整数,则 sum() 的结果是一个整数值。如果 sum() 的任何输入既不是整数也不是 NULL,则 sum() 返回一个浮点值,该值可能是真实总和的近似值。

如果所有输入都是整数或 NULL 并且在计算过程中的任何时候发生整数溢出,Sum() 将抛出“整数溢出”异常。Total() 从不引发整数溢出。