2016-02-04 46 views
1

我想表明来自不同党派的收入曲线在过去的6个月,但仅基于基于上个月10人的收入最高的前10名。基于上个月显示6前几个月

因此,这可以改变每个月,当他们存更多的钱,前10人可以改变,使图形将显示过去6个月这10人的存款,仅基于过去的一个月押金。

我已经使用了LAG功能和OVER PARTITION功能的RANK()。

+0

这是一个功课题吗?你到目前为止尝试了什么?展示你的工作。 – Joe

+1

欢迎来到Stack Overflow。看了这个,第一:http://stackoverflow.com/help/how-to-ask – Joe

回答

1

我不明白为什么你需要等级或滞后的功能。

你可以简单地使用IN语句:

SELECT * FROM YourTable t 
WHERE t.depositDate between StartRangeDate and EndRangeDate 
AND t.ID in(select ID from(SELECT s.id,sum(s.depositAmount) as total 
          from YourTable s 
          where s.date between ThisMonthStart and ThisMonthEnd 
          group by s.id) 
      order by total 
      limit 10) 

您可以用第一选择播放,选择您要什么都/通过添加组,总结他们或我不知道。

+0

我有两个其他问题则: 1.什么是你的报表后,选择ID? 2.如果我已经有t.ID,并且实际上没有s.ID,那么为什么我需要s.ID,因为它与t.ID相同? 谢谢! – Naj

+0

@Naj因为您首先必须确定那些仅在过去一个月内完成了顶级1p存款的人,然后您需要另一个查询以便在过去6个月内选择他们。它有两种不同的条件可以将它们组合。 – sagi

+0

非常感谢sagi,今天我会尝试! = D – Naj