2012-02-02 24 views
1

我對SQL非常陌生,正在使用SQLite 3對銷售數據運行購物籃分析。如何選擇總和大於x的數據

相關的欄是產品ID,唯一的交易ID(標識購物籃)和產品數量。如果客戶購買了多種產品類型,則重複交易ID。

我只想選擇客戶購買超過1件商品的籃子。

SQLite有什麼方法可以選擇唯一的事務ID和數量的總和,但僅限於數量超過一個的唯一事務ID?

到目前爲止,我曾嘗試:

select uniqID, sum(qty) from salesdata where sum(qty) > 1 group by uniqID; 

但SQLite的給我的錯誤「的總誤用:)和(」

很抱歉,如果這是一個簡單的問題,但我在努力尋找任何相關信息由谷歌搜索!

+0

請張貼您的表格結構('.schema')。 – 2012-02-02 10:58:57

回答

10

嘗試

select uniqID, sum(qty) from salesdata group by uniqID having sum(qty) > 1 

where」 不能在聚合函數中使用 - 您只能在uniqId使用where,在這種情況下。

+0

非常感謝你! – EAndrews 2012-02-02 11:25:27

+0

在類似的筆記上,如果我想要計數數量超過1的不同uniqID,我該怎麼做?我已經從salesdata的sum(qty)> 1以及salesdata組中選擇count(distinct uniqID)的uniqID(總和(qty)> 1並且這些都不起作用)的select count(distinct uniqID) – EAndrews 2012-02-02 11:53:21

+0

您提問的問題問不完全有效。如果你要求不同的'uniqID',當'uniqID'具有相同的多行時,你使用了'qty'嗎? – YXD 2012-02-02 11:58:55

1

如果你想對你得到的結果放任何條件,你必須使用having。

select uniqID, sum(qty) as sumqty from salesdata group by uniqID having sumqty > 1 

你可以把任何具有正常狀態的條件放在哪裏。

having sumqty = 1 ,having sumqty < 1 ,having sumqty IN (1,2,3) etc..