为每位客户选择前3项

时间:2011-07-14 18:14:40

标签: mysql sql

  

可能重复:
  How to select maximum 3 items per users in MySQL?

我有一个包含3列的sql表: CustomerNumber,Item,Count

此表中约有125个项目;每行包含客户编号,项目编号和客户购买它的次数。

我想查询每个客户及其前3个项目。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

set @i := 0;
set @cn = -1;
select CustomerNumber, Item, `Count`
from (
    select CustomerNumber, Item, `Count`,
        case when CustomerNumber != @cn then @i := 0 else @i := @i + 1 end as i,
        @cn := CustomerNumber
    from t
    order by CustomerNumber, `Count` desc
    ) ss
where i < 3