Py学习  »  Brian L Cartwright  »  全部回复
回复总数  1
12 年前
回复了 Brian L Cartwright 创建的主题 » 如何对多个表使用mysql group by和inner join限制记录数

这需要一系列子查询来对值进行排序、限制它们,然后在分组时执行求和

@Rnk:=0;
@N:=2;
select
  c.id,
  sum(c.val)
from (
select
  b.id,
  b.bal
from (
select   
  if(@last_id=id,@Rnk+1,1) as Rnk,
  a.id,
  a.val,
  @last_id=id,
from (   
select 
  id,
  val 
from list
order by id,val desc) as a) as b
where b.rnk < @N) as c
group by c.id;