Mysql 为每位客户选择前3项

Mysql 为每位客户选择前3项,mysql,sql,Mysql,Sql,可能重复: 我有一个包含3列的sql表: 客户编号、项目、计数 本表约有125项;每行包含客户编号、项目编号和客户购买的次数 我想询问每位客户及其前3项。我该怎么做呢?您是否搜索了每组前N名?这绝对是复制品,是我做的。不管出于什么原因,当我试图使这个查询适应我正在做的事情时,它没有起作用。给了我每个客户的每一件商品。那么按项目选择前三名呢?您是否搜索了每组前N名?这绝对是复制品,是我做的。不管出于什么原因,当我试图使这个查询适应我正在做的事情时,它没有起作用。给了我每个客户的每一件商品。那么按

可能重复:

我有一个包含3列的sql表: 客户编号、项目、计数

本表约有125项;每行包含客户编号、项目编号和客户购买的次数


我想询问每位客户及其前3项。我该怎么做呢?

您是否搜索了每组前N名?这绝对是复制品,是我做的。不管出于什么原因,当我试图使这个查询适应我正在做的事情时,它没有起作用。给了我每个客户的每一件商品。那么按项目选择前三名呢?您是否搜索了每组前N名?这绝对是复制品,是我做的。不管出于什么原因,当我试图使这个查询适应我正在做的事情时,它没有起作用。给了我每个客户的每一件商品。那么按商品选择前三名呢
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