azure-data-explorer - Kusto:如何将表值转换为标量并从用户定义的函数返回
问题描述
我有以下用户定义的函数,目的是使用条件条件来输出 0 或 1 的表,说明帐户是否处于活动状态。
case 需要标量值作为它的参数,即 pro_account_active(account) 和 basic_account_active(account) 需要是标量值。
我正在努力解决 toscalar 的限制:
用户定义的函数不能传递到取决于调用函数的行上下文的 toscalar() 调用信息。
我想如果有一个函数可以代替“??????” 这会将 active 转换为标量并从它可以工作的函数中返回它。
非常感谢任何帮助
let basic_account_active=(account:string) {
basic_check_1(account) // returns 0 or 1 row only
| union basic_check_2(account)
| summarize result_count = count()
| extend active = iff(result_count == 2, 1, 0)
| ??????
};
let pro_account_active=(account:string) {
pro_check_1(account) // returns 0 or 1 row only
| union pro_check_2(account)
| summarize result_count = count()
| extend active = iff(result_count == 2, 1, 0)
| ??????
};
let is_active=(account_type:string, account:string) {
case(
account_type == 'pro', pro_account_active(account),
account_type == 'basic', basic_account_active(account),
-1
)
};
datatable(account_type:string, account:string)
[
'pro', '89e5678a92',
'basic', '9d8263da45',
'pro', '0b975f2454a',
'basic', '112a3f4753',
]
| extend result = is_active(account_type, account)
解决方案
您可以使用该toscalar()
函数将查询的输出转换为标量,即
let basic_account_active=(account:string) {
toscalar(basic_check_1(account) // returns 0 or 1 row only
| union basic_check_2(account)
| summarize result_count = count()
| extend active = iff(result_count == 2, 1, 0))};
推荐阅读
- javascript - 如何单击第一个按钮,该按钮位于具有跨度类的特定 div 中?(使用JavaScript)
- python - 如何用matplotlib分隔x轴图形中的点?
- optaplanner - PlanningVariable 中的 PlanningVariable
- css - 如何在导航栏中悬停时设置顶线
- html - 将斜体的彩色文本添加到 Highchart 图中
- d3.js - d3Force (d3-force-3d's) forceLink.links() 有什么作用?
- angular-material - 自动完成控件显示 ObjectObject 而不是名称
- python - 运行 jupyter 会产生“ModuleNotFoundError: No module named 'six'”
- php - 主页帮助 laravel
- c# - 无法访问静态变量