kdb - KDB/Q:按组计算百分比
问题描述
有没有一种快速的方法来获取组中每个项目的比例/百分比?现在,我首先按组计算值的总和,然后将这个总表合并到原始表中,然后计算比例。Q 是否有一个快速函数来计算这个?
day week item proportion
mon 1 2 20%
tue 1 7 70%
wed 1 1 10%
mon 2 1 25%
tue 2 2 50%
wed 2 1 25%
目前,我会这样做:
total: select total: sum item by week from table;
out: update proportion: item%total from table lj `week xkey total;
解决方案
您可以fby
在一个查询中执行此操作:
q)table:flip`day`week`item!(`mon`tue`wed`mon`tue`wed;1 1 1 2 2 2;2 7 1 1 2 1)
q)update proportion:item % (sum;item) fby week from table
day week item proportion
------------------------
mon 1 2 0.2
tue 1 7 0.7
wed 1 1 0.1
mon 2 1 0.25
tue 2 2 0.5
wed 2 1 0.25
推荐阅读
- vba - # 部分字段名,Access认为是日期
- amazon-web-services - Terraform:配置后如何将实例 IP 发送到 aws_instances
- verilog - verilog 中的寄存器可以表示为数字吗?
- context-free-grammar - 随机上下文无关文法到乔姆斯基范式
- python - 除非 WHERE 子句硬编码,否则 Psycopg2 不是空结果
- swift - 有没有办法压缩这条 if->cast 行?
- visual-studio-code - 如何在 Windows 系统上远程编辑文件
- excel - 根据一个单元格跳过特定行中的excel宏
- mongodb - 创建父文档时未初始化子文档。Nestjs/猫鼬
- rest - 休息服务是否应该将包含 id 的实体返回给其他实体或实体本身?