由于从Office365获取邮箱统计信息的PowerShell方法每个邮箱大约需要2秒钟,我正在努力从Office 365 Reporting web service获取数据,每个邮箱只需几秒钟。
我遇到的问题是定期更新统计数据并保留一些历史数据,因此每个用户都有大量记录。我只想获得每个用户的最新记录,但我还没有找到办法做到这一点。我最接近的是使用$filter=Date ge DateTime'2016-03-10T00:00:00'
,其中日期连接到几天前。理论上,如果我按Date desc
排序,我应该先获得最新记录,如果有一个用户有3/10和3/11的记录,那么3/11记录将首先被拉出,这将是为我工作。但无论我怎么做,它似乎首先回到旧的记录。
理想情况下,我希望能够设置标准,以便它只返回每个邮箱的最新记录,但我似乎无法弄清楚或找到如何做到这一点。我最接近的就是开始运行在特定日期过滤的查询,每天查询一天的日期。
如果我能够获得最先返回的最新记录,我可以使用它,因为如果我已经收到一条记录,我可以丢弃一条记录。
https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MailboxUsageDetail/
?DelegatedOrg=nnn.onmicrosoft.com&$select=Date,WindowsLiveID,CurrentMailboxSize
&$filter=Date ge DateTime'2016-03-08T00:00:00'&$orderby=Date desc
所以问题是:
$orderby
做错了什么?谢谢!
答案 0 :(得分:0)
您可以使用$top=1
在日期(desc)上应用$orderby
来获取最新记录。在这种情况下,$filter
和$skip
可能不需要。
https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MailboxUsageDetail/?DelegatedOrg=nnn.onmicrosoft.com&$select=Date,WindowsLiveID,CurrentMailboxSize&$orderby=Date desc&$top=1
您的查询看起来很好,这是Odata示例服务的另一个示例,用于获取最近出生日期的员工详细信息。