使用 Left Join kql 获取行数?无法在当前上下文中调用函数 'row_number'。详细信息:行集必须序列化

Getting number of rows using Left Join kql? Function 'row_number' cannot be invoked in current context. Details: the row set must be serialized

我有以下查询:

let p1 = pageViews | where url has "xxx";
p1
| join kind=inner (pageViews 
        | where  url !has "xxx")
on session_Id
| project timestamp1, session_Id1, url1, client_CountryOrRegion1, client_StateOrProvince1, client_City1, user_Id1 

它确实会获取来自某个提供商的用户,然后查看他们将访问哪些 URL。

我现在正在尝试了解我从该提供商那里获得了多少用户。

我可以只做 distinct session_Idcount 但我想做的是添加两列,首先是特定的 session_id ,然后在它发生变化时增加它,然后是另一列递增请求数。

tried:

 let p1 = pageViews | where url has "project-management";
p1
| join kind=inner (pageViews 
        | where  url !has "project-management")
on session_Id
| project timestamp1, session_Id1, url1, client_CountryOrRegion1, client_StateOrProvince1, client_City1, user_Id1 
| extend Rank=row_number(1) 

但它给了我

Function 'row_number' cannot be invoked in current context. Details: the row set must be serialized

输出中的记录未排序,因此 row_number() 没有意义。

row_number() 仅适用于使用 order byserialize.

后的序列化记录

所以你的问题的解决方法是在| extend Rank=row_number(1)之前加上| serialize