azure-data-explorer - 如何访问 kusto 表中特定行号和特定列号的值?
问题描述
通过使用 row_number() 我们可以获得整行。但是,如果我们想要该行中的特定值并将其用于进一步计算怎么办?
Example:
Customer Month Usage. %Change
ABC 8. 10. 0
DEF 9. 12. 120
GHI 10. 10. 100
JKL. 11. 15. 150
我正在寻找的计算是:- 需要第一个月的使用量,即 10 从下个月开始
12/10 * 100 = 120
10/10 * 100 = 100
15/10 * 100 = 150
如何获取第一行、第二列的值并将其存储到变量中,以便我可以将其用于进一步计算?
解决方案
这样的事情怎么样?
let events = datatable(Customer: string, Month:int, Usage:real) [
"ABC", 8, 10,
"DEF", 9, 12,
"GHI", 10, 10,
"JKL", 11, 15];
//
let first_usage = toscalar(events | summarize arg_min(Month, Usage) | project Usage);
events | extend Change = 100*Usage/first_usage
first_usage 变量设置为最低月份的使用值。如果您确定它们已经排序,您可以只选择第一行。我们必须将其转换为标量才能在以后的计算中使用它。
接下来,我们为您的计算添加一个新的更改列。第一行将是 100(而不是 0),但如果它很重要,也可以通过使用iff()
以不同方式处理第一行来修复:
let events = datatable(Customer: string, Month:int, Usage:real) [
"ABC", 8, 10,
"DEF", 9, 12,
"GHI", 10, 10,
"JKL", 11, 15];
//
let first_usage = toscalar(events | summarize arg_min(Month, Usage) | project Usage);
events
| serialize
| extend r=row_number()
| extend Change = iff(r==1, 0.0, 100*Usage/first_usage)
| project-away r
推荐阅读
- c# - C# - 获取 AD 帐户状态会导致非 null 的 int 值出现 NullReferenceException
- machine-learning - Compute the similarity of two graphs of different sizes
- mysql - How do I set the perms of a my.cnf file to be readonly from within Docker (not at the client's OS level)?
- python - 如何在左键单击时在 QSystemTrayIcon 中显示上下文菜单
- snakemake - 如何在包装器中使用snakemake.script?
- aurelia - 使用参数生成 aurelia 路由并在新的浏览器选项卡中打开
- rust - 如何将多个调用链接到“into()”?
- python - 如何在熊猫索引器中获取 True 条目的整数位置
- html - 为什么我的 CSS 文件没有链接到我的 HTML 文件?
- c++ - 生成与 C++ 库的 Rust ffi 绑定