【问题标题】:Kusto Query Dynamic sort OrderKusto 查询动态排序顺序
【发布时间】:2021-10-11 03:02:57
【问题描述】:

我最近开始使用 Azure 数据资源管理器 (Kusto)。

我要求以动态方式对 Kusto 表进行排序。


// 变量声明

        let SortColumn ="run_date";
        let OrderBy="desc";

// 实际代码

tblOleMeasurments |拿 10 |不同的 column1,column2,column3,run_date |按 SortColumn OrderBy 排序

在这里,我的代码在 Sortcolumn 之前工作正常,但是当我尝试在 [SortColumn] 之后添加 [OrderBy] 时,kusto 给了我错误。

我的要求是从变量 [OrderBy] 传递 Asc/desc 值。

请在此处提供对我有帮助的变通方法和解决方案。

【问题讨论】:

    标签: azure-data-explorer kusto-explorer


    【解决方案1】:

    另一种方法是按计算列排序,该列基于您的sort_ordersort_column。下面的示例适用于数字列

    let T = range x from 1 to 5 step 1 | extend y = -10 * x;
    let sort_order = "asc";
    let sort_column = "y";
    T
    | order by column_ifexists(sort_column, "") * case(sort_order == "asc", -1, 1)
    

    【讨论】:

      【解决方案2】:

      排序列和顺序不能是表达式,它必须是文字(“asc”或“desc”)。如果要将排序列和排序顺序作为变量传递,请创建一个联合,而不是在变量过滤器产生所需结果的地方。这是一个例子:

      let OrderBy = "desc";
      let sortColumn = "run_date";
      let Query = tblOleMeasurments | take 10 |distinct column1,column2,column3,run_date;
      union 
      (Query | where OrderBy == "desc" and sortColumn == "run_date" | order by run_date desc), 
      (Query | where OrderBy == "asc" and sortColumn == "run_date" | order by run_date asc)
      

      联合分支的数量将是候选排序列数乘以 2(两个排序顺序选项)的乘积。

      【讨论】:

      • 非常感谢,我觉得很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2013-12-22
      • 2016-12-09
      • 2020-08-27
      • 2019-07-15
      相关资源
      最近更新 更多