如何在 Azure 数据资源管理器 (kusto) 中将值从一个 table 查找到另一个
How to lookup value from one table to another in Azure Data Explorer (kusto)
我是 Kusto 语言的新手,但在 SQL 方面经验丰富。所以也许我做事的方式完全错误。
我正在尝试创建需要检查一个 table 中的值是否存在于另一个中的查询。
像这样:
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
];
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
];
T2
| join (T1) on id
| extend e=case(s has_any (ss),"Yes","No");
但出现错误“错误 has_any():未能将参数 2 转换为标量常量”。
有办法吗?
更好的功能,像这样:
let E = (i_id: int, i_s: string)
{
T1 | where id==i_id | project e=case(i_s has_any (ss),"Yes","No")
};
T2
| extend e=E(id,s);
请指教
这里有几个选项供您考虑:
1.
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
]
;
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
]
;
T2
| join (T1 | mv-expand ss to typeof(string)) on id
| summarize e = case(countif(s == ss) > 0, "Yes", "No") by id, s
2.
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
]
;
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
]
;
T2
| join T1 on id
| project id, s, e = case(indexof(tostring(ss), s) > 0, "Yes", "No")
// not necessarily accurate, depending on the values in the actual data
我是 Kusto 语言的新手,但在 SQL 方面经验丰富。所以也许我做事的方式完全错误。
我正在尝试创建需要检查一个 table 中的值是否存在于另一个中的查询。
像这样:
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
];
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
];
T2
| join (T1) on id
| extend e=case(s has_any (ss),"Yes","No");
但出现错误“错误 has_any():未能将参数 2 转换为标量常量”。
有办法吗?
更好的功能,像这样:
let E = (i_id: int, i_s: string)
{
T1 | where id==i_id | project e=case(i_s has_any (ss),"Yes","No")
};
T2
| extend e=E(id,s);
请指教
这里有几个选项供您考虑:
1.
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
]
;
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
]
;
T2
| join (T1 | mv-expand ss to typeof(string)) on id
| summarize e = case(countif(s == ss) > 0, "Yes", "No") by id, s
2.
let T1 = datatable(id: int, ss:dynamic)
[
1, dynamic(["qwe", "rty"]),
2, dynamic(["uio", "pas"]),
3, dynamic(["dfg", "hjk"]),
]
;
let T2 = datatable(id:int, s:string)
[
1, "rty",
2, "abc",
3, "hjk"
]
;
T2
| join T1 on id
| project id, s, e = case(indexof(tostring(ss), s) > 0, "Yes", "No")
// not necessarily accurate, depending on the values in the actual data