2011-01-26 28 views
2

我有一個像下面使用count我只得到一個行回來

User Item 
A  1 
A  1 
A  1 
B  1 
B  2 
C  2 
C  2 
A  2 

我試圖運行查詢的表,所以我可以得到一個輸出如

User Item Count 
A  1  3 
B  1  1 
B  2  1 
A  2  1 
C  2  2 

我試過以下查詢,但是我沒有得到正確的輸出。

select f.item,f.uid, COUNT(f.uid) as count 
    from fresh f, 
     product p 
    where f.locationid = p.iid 
group by f.locationid, f.uid 
order by f.uid desc; 

任何人都可以指出我如何編寫一個查詢來獲得所需的輸出?我可以用python/ruby​​編寫它,但我認爲運行需要更長的時間! :(

+1

你爲什麼要通過f.locationid分組和f.uid如果組僅f.uid ,你可能會得到你想要的結果。 – thehiatus 2011-01-26 23:21:28

回答

3
Select user, Item, count(*) Count From tablename 
Group by User, Item 
Order by Item 
+0

+1爲唯一答案按順序顯示順序,這似乎是@ steve原始查詢的唯一問題。 – 2011-01-27 02:27:58

+0

...雖然爲了清楚起見,大多數程序員會按項目uid排序,因爲程序員在討厭隨機性時會遇到這樣的情況。 – 2011-01-27 02:28:42

1

你爲什麼加入到產品表,當不使用的結果?

這是問題的可能的原因,因爲它是一個內部聯接,當有ISN」 T A比賽,不會有結果,所以你會丟失數據,儘量只:

select 
    item, 
    uid, 
    COUNT(*) as count 
from 
    fresh 
group by 
    locationid, 
    uid 
order by 
    uid desc 
; 
3
SELECT user, item, count(*) FROM fresh GROUP BY user, item 
相關問題