如果 <something>,在 Kusto 中什么都不做

If <something>, do nothing in Kusto

用例:在 Azure Application Insights 中,从 Azure 网络应用创建 table 每页视图

在 Azure Application Insights 中使用 Kusto,我想合并 table 1:

中的行

进入table2:

不幸的是,下面的查询将第一列(第一行除外)中的单元格替换为第二列中的单元格。根据查询的编写方式,这是预期的。不幸的是,这是不正确的,不是我的目标。

pageViews 
| where timestamp between(datetime("2020-03-01T00:00:00.000Z")..datetime("2020-06-01T00:00:00.000Z"))
| extend guide = case(
    url contains "/guide-1/","guide-1",
    url contains "/guide-2/","guide-2",
    url contains "/guide-3/","guide-3",
    "home-page"
)
| extend tag = case(
    url contains "/guide-1/","install",
    guide contains "home-page","home-page",
    "how-to"
)
| extend name = case(
    name contains "Welcome to docs","Welcome to docs",
    "home-page" //This is incorrect - nothing should happen if the name does not contain "Welcome to docs"
)
| summarize Ocurrences=count() by name, tag, guide

我已经在 Microsoft 文档中搜索了一种方法 "do nothing" 如果不满足条件但没有提出任何建议,因为我对 Kusto 缺乏了解。我尝试了 iff 但没有成功。

感谢您提供任何帮助,包括如果此方法不是最好的建议。

如果您想在特定条件下保留 'name',您可以这样做:

|扩展名称=案例( 名称包含 "Welcome to docs","Welcome to docs", 姓名 )

pageViews 
| where timestamp between(datetime("2020-03-01T00:00:00.000Z")..datetime("2020-06-01T00:00:00.000Z"))
| extend guide = case(
    url contains "/guide-1/","guide-1",
    url contains "/guide-2/","guide-2",
    url contains "/guide-3/","guide-3",
    "home-page"
)
| extend tag = case(
    url contains "/guide-1/","install",
    guide contains "home-page","home-page",
    "how-to"
)
| extend name = case(
    name contains "Welcome to docs","Welcome to docs",
    name
)
| summarize Ocurrences=count() by name, tag, guide

此外,最好使用 'has' 而不是 'contains':'has' 查找完整单词并且比 'contains' 更快。