我有一个表(processed_amounts),显示'amount','date_processed'和处理金额的'agent'。我需要一个查询,它将在指定的时间段内(例如上个月)为多个代理的列表提取指定数量的已处理条目,例如50个已处理的条目。有没有办法在一个查询中写这个,因为我将每月运行一次?所以说我需要一份包含10个不同代理商的50个条目的报告,这些代理在2018年5月份处理过,我可以将其纳入一个查询吗?
因此,例如,表格如下所示;
Date_Processed │ Amount │ Agent
01/05/2018 │ £35:90 │ tbrown
25/05/2018 │ £79:00 │ asmith
我的查询需要为2018年5月的tbrown和asmith提取50个条目。
非常感谢,感谢您的帮助
答案 0 :(得分:0)
如果我理解正确,您可以使用row_number()
:
select pa.*
from (select pa.*,
row_number() over (partition by agent order by ?) as seqnum
from processed_amounts pa
where agent in ( . . . ) and -- list of agents here
date_processed >= '2018-05-01' and
date_processed < '2018-06-01'
) pa
where seqnum <= 50;
?
用于确定哪个 50的列 - 月份中的第一个,最后一个,任意50个,随机50个等等。如果你不在乎哪个50,你可以放入agent
任意50行。