使用count我只得到一行

时间:2011-01-26 23:15:52

标签: sql mysql aggregate-functions

我有一张如下表格

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​​中编写它,但我认为运行需要更长的时间! :(

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

SELECT user, item, count(*) FROM fresh GROUP BY user, item

答案 2 :(得分:1)

为什么在结果中没有使用产品表时加入产品表?

这可能是问题的原因,因为它是一个内连接,当没有匹配时,就没有结果,所以你会丢失数据,试试吧:

select 
    item,
    uid, 
    COUNT(*) as count 
from  
    fresh
group by 
    locationid,
    uid 
order by
    uid desc
;