代码之家  ›  专栏  ›  技术社区  ›  Naj

基于上月的前10名,显示前6个月

  •  1
  • Naj  · 技术社区  · 8 年前

    我想展示一个图表,显示过去6个月内不同党派的收入,但仅基于上个月10人的最高收入。

    因此,这可能每个月都会发生变化,因为前10个人在存款更多时会发生变化。因此,图表将显示这10个人在过去6个月的存款,仅以上个月存款为基础。

    我已经使用了LAG函数和RANK()OVER PARTITION函数。

    1 回复  |  直到 8 年前
        1
  •  1
  •   sagi    8 年前

    我不明白你为什么需要秩或滞后函数。

    您可以简单地使用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)
    

    你可以用第一个选择来选择你想要的/添加一个组,然后将它们相加或我不知道。