基于上个月显示前 6 个月的前 10 名
Top 10 based on last month showing 6 previous months
我想显示过去 6 个月来自不同各方的收入的图表,但仅基于上个月的 10 个人的最高收入。
所以这每个月都会发生变化,因为前 10 个人在存入更多钱时会发生变化,因此图表将显示这 10 个人最近 6 个月的存款,仅基于上个月的存款。
我已经使用了 LAG 函数和 RANK() OVER PARTITION 函数。
我不明白你为什么需要等级或滞后函数。
您可以简单地使用 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)
你可以玩第一个 select 到 select 什么你 want/add 一组然后把它们相加或者我不知道。
我想显示过去 6 个月来自不同各方的收入的图表,但仅基于上个月的 10 个人的最高收入。
所以这每个月都会发生变化,因为前 10 个人在存入更多钱时会发生变化,因此图表将显示这 10 个人最近 6 个月的存款,仅基于上个月的存款。
我已经使用了 LAG 函数和 RANK() OVER PARTITION 函数。
我不明白你为什么需要等级或滞后函数。
您可以简单地使用 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)
你可以玩第一个 select 到 select 什么你 want/add 一组然后把它们相加或者我不知道。