0

我想按名称限制特定关联依赖项的请求。我尝试使用leftsemi join,但这似乎并没有像我预期的那样工作,因为它与我的inner join 结果相同。

requests
| where timestamp >= ago(24h)
| join kind=leftsemi (
    dependencies
    | where name contains "MYDATABASENAME" 
) on operation_Id 
| summarize count() by tostring(parseurl(url).Path)
| order by count_ desc

我正在查看接下来的where-in语句,但我仍然不确定这是否是执行T-SQL 中通常存在的语句的预期方式。

4

2 回答 2

0

实际上,为了获得 where-in 语义,您应该使用内部连接。从join的文档(在kind=inner部分):

对于左右匹配行的每个组合,输出中都有一行。

此外,由于返回表的大小有限制,您可能希望像这样限制连接的右侧:

requests 
| where timestamp >= ago(24h)
| join kind=inner (
    dependencies
    | where name contains "MYDATABASENAME" 
    | project operation_Id
) on operation_Id 
| summarize count() by tostring(parseurl(url).Path)
| order by count_ desc
于 2017-02-17T18:12:48.833 回答
0

您应该能够使用let语句来实现这一点。

于 2017-02-16T19:43:57.667 回答