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

问题描述

我有以下查询

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,然后在它发生变化时增加它,另一列增加提出的要求。

enter image description here

tried

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

但它给了我

无法在当前上下文中调用函数“row_number”。详细信息:行集必须序列化

解决方法

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

row_number() 仅适用于使用 order byserialize 后的序列化记录。

因此,您的问题的解决方案是在 | serialize 之前添加 | extend Rank=row_number(1)