2012-02-04 81 views
0

我想用SQLite對銷售數據進行一些分析。如何在SQLite中添加總列

目前,我的表格有幾列,包括unique transaction ID,product name,quantity of that productvalue of that product。對於每個交易,可以有多個記錄,因爲籃子中的每種不同類型的產品都有自己的條目。

我想添加兩個新的列到表中。第一個是total for each transaction ID,它總結了該籃子中所有產品的總數量。

我意識到表中會有重複,因爲重複的事務ID都會有總數。第二個類似但價值相近。

不幸的是,我不能通過創建一個新的表格來創建一個我想在Excel中計算的值,然後將它加入到原始表格中,因爲Excel中的記錄太多。

是否有辦法讓SQL在Excel中執行相當於sumif的操作?

我想沿着線的東西:

select sum(qty) where uniqID = ... 

但我對如何表達,它需要總結的所有數量,其中uniqID是一樣的一個在該記錄難倒。

回答

1

您不會在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); 

現在你可以做個人uniqIDs簡單的查詢是這樣的:

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

或和所有uniqIDs(以下簡稱「按組」條款可能是你摸索:)所有:

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 

在進一步的查詢,分析,您可以使用「總計」就像你的表。