Possible Duplicate:
How to select maximum 3 items per users in MySQL?
我有一个包含3列的sql表:
客户编号、项目、计数
此表中大约有125个项目;每行包含客户编号、项目编号和客户购买项目的次数。
我想询问每位顾客及其前三名。我该怎么做呢?

最佳答案

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

10-06 11:34