如何在SQLite中添加总列

时间:2012-02-04 14:34:33

标签: sqlite sum where

我正在尝试使用SQLite对销售数据进行一些分析。

目前,我的表格包含多个列,包括unique transaction IDproduct namequantity of that productvalue of that product。对于每个事务,可以有多个记录,因为购物篮中的每个不同类型的产品都有自己的条目。

我想在表格中添加两个新列。第一个是total for each transaction ID,它总结了该篮子中所有产品的总量。

我意识到表中会有重复,因为重复的事务ID都会有总数。第二个是相似但价值方面。

遗憾的是,我无法通过创建一个包含我想在Excel中计算的值的新表,然后将其连接到原始表,因为Excel的记录太多了。

有没有办法让SQL在Excel中执行相当于sumif的工作?

我正在思考以下几点:

select sum(qty) where uniqID = ...

但我很难说如何表达它需要将uniqID与该记录中的那个相同的所有数量相加。

1 个答案:

答案 0 :(得分:2)

您不会在SQL中创建类似的列。您只需动态查询总数即可。如果你真的想要一个类似于表的对象,你可以创建一个包含2列的视图; uniqID和该ID的总和。

让我们在表格中设置一些虚拟数据; a列是你的uniqID,b是你要求的值。

create table tab1 (a int, b int);
insert into tab1 values (1,1);
insert into tab1 values (1,2);
insert into tab1 values (2,10);
insert into tab1 values (2,20); 

现在,您可以对单个uniqID进行简单查询,如下所示:

select sum(b) from tab1 where a = 2;
30

或所有uniqID的总和('group by'子句可能就是你正在摸索的:):

select a, sum(b) from tab1 group by a;
1|3
2|30

可以将其包装为视图:

create view totals as select a, sum(b) from tab1 group by a;
select * from totals;
1|3
2|30

视图将动态更新:

insert into tab1 values (2,30);
select * from totals;
1|3
2|60

在进一步的查询中,对于分析,您可以像使用表格一样使用“总计”。