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