我有一个包含3列的sql表: CustomerNumber,Item,Count
此表中约有125个项目;每行包含客户编号,项目编号和客户购买它的次数。
我想查询每个客户及其前3个项目。我该怎么做呢?
答案 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