代码之家  ›  专栏  ›  技术社区  ›  Peter Bons

如何在subselect中使用筛选器

  •  0
  • Peter Bons  · 技术社区  · 7 年前

    我想对相关数据集执行子选择。该子数据需要使用主查询中的数据进行筛选:

    customEvents
    | extend envId = tostring(customDimensions.EnvironmentId)
    | extend organisation = tostring(customDimensions.OrganisationName)
    | extend version = tostring(customDimensions.Version)
    | extend app = tostring(customDimensions.Appname)
    | where customDimensions.EventName contains "ApiSessionStartStart"
    | extend dbInfo = toscalar(
        customEvents 
        | extend dbInfo = tostring(customDimensions.dbInfo)
        | extend serverEnvId = tostring(customDimensions.EnvironmentId)
        | where customDimensions.EventName == "ServiceSessionStart" or customDimensions.EventName == "ServiceSessionContinuation"
        | where serverEnvId = envId // This gives and error
        | project dbInfo
        | take 1)
    | order by timestamp desc
    | project timestamp, customDimensions.OrganisationName, customDimensions.Version, customDimensions.onBehalfOf, customDimensions.userId, customDimensions.Appname, customDimensions.apiKey, customDimensions.remoteIp, session_Id , dbInfo,  envId
    

    上述查询导致错误:

    无法解析实体“envId”

    如何根据字段筛选subselect中的数据 envId 在主查询中?

    1 回复  |  直到 7 年前
        1
  •  1
  •   John Gardner    7 年前

    我相信你需要 join 相反,您将在其中加入以从第二个查询中获取该值

    加入文档: https://docs.loganalytics.io/docs/Language-Reference/Tabular-operators/join-operator

    联接的左侧是“外部”查询,而联接的右侧是“内部”查询,虽然不执行take 1,您可能会执行一个更简单的查询,只获取serverEnvId、dbInfo的不同值